Python(我使用2.7)中有一些東西在困擾着我(ha!)。這是我得到NameError: global name 'x' is not defined
當我運行這段代碼:Python:在函數之間使用變量
def function1():
x = 1
return 0
def function2():
function1()
print(x)
return 0
function2()
這不是對我來說是嚴重的問題,但我真的很好奇,爲什麼這不能打印1.這是有道理的,右在我心中流。定義變量x
的函數在調用之前被定義,並且該函數在print(x)
之前被調用。我真的沒有看到爲什麼這個代碼不起作用。也許我想這個的方式是有缺陷的。無論哪種方式,爲什麼不打印1?先謝謝您的幫助!
詞法範圍界定:http://en.wikipedia.org/wiki/Scope_(computer_science)#Lexical_scoping_vs._dynamic_scoping – uselpa
我改變了標題,因爲我意識到有點太遲了,這很容易讓人誤解。抱歉!並感謝所有偉大的答案。 – Mikeureko