解決巢狀函數作用域中的UnboundLocalError
Python 解釋器在存取巢狀函數內未綁定的局部變數時遇到UnboundLocalError。當巢狀函數嘗試修改外部函數中宣告的變數時,就會出現此問題。
範例:
考慮以下程式碼:
執行此程式碼後,解釋器會產生下列錯誤:
原因:
儘管有巢狀作用域,但內部函數無法存取'ctr ' 直接變量,因為它是在外部函數中定義的。這會導致變數未綁定,從而觸發 UnboundLocalError。
解:
Python 3 提供了「nonlocal」語句來啟用巢狀作用域中的變數重新綁定。修改程式碼以包含「nonlocal」可以解決這個問題:
對於Python 2 用戶,需要替代方法:
以上是如何處理巢狀函數作用域中的未綁定局部變數錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!