Skip to main content
 首页 » 编程设计

python全局变量,这是怎么回事需要解释

2025年05月04日9JeffreyZhao

谁能解释一下这是怎么回事

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 进行赋值,它就会成为局部变量,即使在赋值之前已经引用了它的值。