Python3中如何运用nonlocal关键字调整变量作用域?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2179个文字,预计阅读时间需要9分钟。
也许你已经感觉到自己可以熟练使用Python,并且胜任许多开发任务,因此这篇章节是在浪费你的时间。不必焦急,我们先从一个例子开始:+i=0 def f(): print (+i) +i=1 print (+i) f() print()
也许你已经觉得自己可以熟练使用python并能胜任许多开发任务,所以这篇文章是在浪费你的时间。不过别着急,我们先从一个例子开始:
i = 0def f():
print(i)
i += 1
print(i)
f()
print(i)
猜猜看输出是什么?你会说不就是0,1,1么,真的是这样吗?
> python test.pyTraceback (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分钟。
也许你已经感觉到自己可以熟练使用Python,并且胜任许多开发任务,因此这篇章节是在浪费你的时间。不必焦急,我们先从一个例子开始:+i=0 def f(): print (+i) +i=1 print (+i) f() print()
也许你已经觉得自己可以熟练使用python并能胜任许多开发任务,所以这篇文章是在浪费你的时间。不过别着急,我们先从一个例子开始:
i = 0def f():
print(i)
i += 1
print(i)
f()
print(i)
猜猜看输出是什么?你会说不就是0,1,1么,真的是这样吗?
> python test.pyTraceback (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原则
变量的作用域,这是一个老生常谈的问题了。

