未綁定局部錯誤:局部變數'c' 遮蔽全域作用域
在Python 中,理解函數內變數的賦值規則對於防止潛在的錯誤。當遇到「UnboundLocalError」時,有必要調查函數中指派的變數是否試圖掩蓋全域變數。
考慮以下程式碼:
a, b, c = (1, 2, 3) def test(): print(a) print(b) print(c) c += 1
執行此程式碼時,您將遇到源自「print(c)」行的錯誤。此錯誤訊息通常表示在 test() 函數的本地範圍內沒有分配“c”變數。
要解決此錯誤,您需要了解 Python 根據位置不同地對待函數中的變數他們被分配了。如果您嘗試為函數內的變數賦值,它就會成為局部變數。但是,在此程式碼中,您打算讓“c”保持全域。
要聲明test() 函數中的“c”變數引用全域變數“c”,您必須明確使用“函數開頭的“global”關鍵字:
def test(): global c print(a) print(b) print(c) c += 1
透過加入“global c”,Python會識別出您打算使用全域「c」變數而不是本地變數。 c」而不是「global c」來引用最近的封閉變數擁有「c」變數的函數作用域。然而,值得注意的是,在日常Python 編碼中使用「nonlocal」通常不太常見。
以上是為什麼我的 Python 程式碼在存取函數內的全域變數時會拋出「UnboundLocalError」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!