所以這裏是在函數內部使用x
的代碼。在python函數中使用全局變量
x = 1
def f():
y = x
x = 2
return x + y
print x
print f()
print x
但蟒是不會來查找變量out功能範圍,並導致UnboundLocalError: local variable 'x' referenced before assignment
。我不想修改全局變量的值,我只是想在我做y=x
時使用它。
在另一方面,如果我只是在回報statment使用它,它按預期工作:
x = 1
def f():
return x
print x
print f()
有人能解釋爲什麼嗎?
問題不回答'y = x'但是'y = x'與'x = 2'一起。刪除其中一個,並且此錯誤消失。 (但你可能會有所不同:)) – furas
但是'x = 2'低於'y = x',所以我的意思是python應該首先處理'y = x',將y賦值給y,然後在'x = 2'創建一個新的局部變量併爲其賦值2。不是嗎? –