此代碼給出了一個「未結合的錯誤」Python的範圍錯誤
x=3
def f():
print x
x+=3
這樣做的原因(在此查詢Python variable scope error討論)(如在答案給出)是一旦賦值運算符已被使用的「x」成爲一個局部變量,因爲「X」沒有連接到它的值,一個不能被3 增加它可是看看這個代碼
x=3
def f():
print x
x=3
這一次,它似乎並不認爲「X」確實有一個值,因此不應該有任何問題,但相同的錯誤occ URS。
UnboundLocalError: local variable 'x' referenced before assignment
如果python在閱讀'x = 3'語句後已經創建了一個局部變量'x',那麼它爲什麼不打印'x'?
這也是有趣在這裏,這段代碼不會產生錯誤
x=3
def f():
print x
x
的出來是「3」(當f()被調用)
這混淆了我很多,」不是個注意這次也'x'在'f()'內部聲明,那麼不應該python添加這個'x'到它的局部變量列表?
Python編譯您在函數中使用的變量名稱列表。這裏'x'將被使用,所以它已經爲它「保留」了空間,但它未被分配。 –