有人可以解释这里发生了什么
x = 10
def foo():
print "x in foo = ",x
if x: x = 8 -------------> mysterious line
foo()
print "x in main = ",x
在上面的代码中,如果我注释掉神秘的行(如果 x:x = 8)
我得到输出
x in foo = 10
x in main = 10
否则我最终会出错
“UnboundLocalError:分配前引用的局部变量‘x’”
为什么这样?
我知道global x
只有当我需要在本地修改全局变量时才有用。