在下面的第二种情况中,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