谁能解释一下这是怎么回事
x = 10
def foo():
print "x in foo = ",x
if x: x = 8 -------------> mysterious line
foo()
print "x in main = ",x
在上面的代码中,如果我把神秘的一行注释掉(if x: x = 8)
我得到输出
x in foo = 10
x in main = 10
否则我会报错
"UnboundLocalError: local variable 'x' referenced before assignment"
为什么会这样?
我知道 global x 只有在我需要在本地修改全局变量时才有用。
请您参考如下方法:
一旦您在函数中的任何位置对 x 进行赋值,它就会成为局部变量,即使在赋值之前已经引用了它的值。
