我是 Python 的新手,想知道下面的情況。
x = 1
def func():
print(x)
x = 2
return x
所以我得到了 UnboundLocalError: local variable 'x' referenced before assignment。但如果我理解正確的話——Python 會逐行讀取和執行代碼。因此,在函式“print(x)”中的第一條陳述句中,它必須只中繼全域變數 x 哪個 eq。1,但我得到了錯誤。請解釋一下,我覺得很簡單。
uj5u.com熱心網友回復:
我認為您的問題在python 檔案的常見問題解答中也得到了解釋
這是因為當您對作用域中的變數進行賦值時,該變數成為該作用域的本地變數,并隱藏外部作用域中任何類似命名的變數。由于 foo 中的最后一條陳述句為 x 分配了一個新值,因此編譯器將其識別為區域變數。因此,當較早的 print(x) 嘗試列印未初始化的區域變數并導致錯誤時。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/478357.html
