在 Python 2.7 中,运行以下代码:
def f():
a = a + 1
f()
给出以下结果:
Traceback (most recent call last):
File "test.py", line 4, in <module>
f()
File "test.py", line 2, in f
a = a + 1
UnboundLocalError: local variable 'a' referenced before assignment
但是,如果我将代码更改为以下内容:
def f():
a[0] = a[0] + 1
f()
我得到不同的错误:
Traceback (most recent call last):
File "test.py", line 4, in <module>
f()
File "test.py", line 2, in f
a[0] = a[0] + 1
NameError: global name 'a' is not defined
为什么当 Python是一个全局a
变量时,它是一个局部变量?这背后的原因是什么?int
list
PS:我在阅读这个帖子后正在尝试。