在下面的第二种情况下,Python 尝试查找局部变量。当它找不到时,为什么它不能像第一种情况那样在外部范围内查找?
这在本地范围内查找 x,然后在外部范围内查找:
def f1():
x = 5
def f2():
print x
这给出了local variable 'x' referenced before assignment
错误:
def f1():
x = 5
def f2():
x+=1
我不允许修改函数 f2() 的签名,所以我不能传递和返回 x 的值。但是,我确实需要一种方法来修改 x. 有没有办法明确告诉 Python 在外部范围内查找变量名(类似于global
关键字)?
Python版本:2.7