有人可以解释这里发生了什么
x = 10
def foo():
print "x in foo = ",x
if x: x = 8 -------------> mysterious line
foo()
print "x in main = ",x
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,如果我注释掉神秘的线(如果x:x = 8)
我得到了输出
x in foo = 10
x in main = 10
Run Code Online (Sandbox Code Playgroud)
否则我最终会出错
"UnboundLocalError:赋值前引用的局部变量'x'"
为什么这样?
我知道global x只有在需要在本地修改全局变量时才有用.
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |