Python3中如何运用nonlocal关键字调整变量作用域?

2026-05-26 18:240阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2179个文字,预计阅读时间需要9分钟。

Python3中如何运用nonlocal关键字调整变量作用域?

也许你已经感觉到自己可以熟练使用Python,并且胜任许多开发任务,因此这篇章节是在浪费你的时间。不必焦急,我们先从一个例子开始:+i=0 def f(): print (+i) +i=1 print (+i) f() print()

也许你已经觉得自己可以熟练使用python并能胜任许多开发任务,所以这篇文章是在浪费你的时间。不过别着急,我们先从一个例子开始:

i = 0
def f():
print(i)
i += 1
print(i)

f()
print(i)

猜猜看输出是什么?你会说不就是0,1,1么,真的是这样吗?

> python test.py
Traceback (most recent call last):
File "a.py", line 7, in <module>
f()
File "a.py", line 3, in f
print(i)

UnboundLocalError: local variable 'i' referenced before assignment

这是为什么?如果你还不清楚产生错误的原因,那就请继续往下阅读吧!

LEGB原则

变量的作用域,这是一个老生常谈的问题了。

阅读全文

本文共计2179个文字,预计阅读时间需要9分钟。

Python3中如何运用nonlocal关键字调整变量作用域?

也许你已经感觉到自己可以熟练使用Python,并且胜任许多开发任务,因此这篇章节是在浪费你的时间。不必焦急,我们先从一个例子开始:+i=0 def f(): print (+i) +i=1 print (+i) f() print()

也许你已经觉得自己可以熟练使用python并能胜任许多开发任务,所以这篇文章是在浪费你的时间。不过别着急,我们先从一个例子开始:

i = 0
def f():
print(i)
i += 1
print(i)

f()
print(i)

猜猜看输出是什么?你会说不就是0,1,1么,真的是这样吗?

> python test.py
Traceback (most recent call last):
File "a.py", line 7, in <module>
f()
File "a.py", line 3, in f
print(i)

UnboundLocalError: local variable 'i' referenced before assignment

这是为什么?如果你还不清楚产生错误的原因,那就请继续往下阅读吧!

LEGB原则

变量的作用域,这是一个老生常谈的问题了。

阅读全文