有人可以解釋怎麼在這裏python全局變量,這是怎麼回事?說明需要
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: local variable 'x' referenced before assignment"
爲什麼這樣的嗎?
我知道global x
僅當我需要在本地修改全局變量時纔有用。
但是,您*本地修改'x'。 –
當函數「編譯」時,函數中哪些範圍可用的變量會被確定。也就是說,在'foo()'中間變量不能從全局變爲局部。 – millimoose