在Python 2.x 中存取閉包中的非局部變數
Python 2.x 缺少nonlocal 關鍵字,這會引發有關訪問非局部變數的問題在閉包中。內部函數本質上可以讀取非局部變量,但不允許重新綁定它們。
存取非局部變數的解決方法
儘管有此限制,您仍然可以採用解決方法:
使用字典的範例
考慮以下基於維基百科範例的程式碼片段:
<code class="python">def outer(): data = {'y': 0} def inner(): data['y'] += 1 return data['y'] return inner f = outer() print(f(), f(), f()) # prints 1 2 3</code>
在這個例子中,字典資料用於儲存非局部變數y。內部函數可以增加 y 的值並傳回更新後的值,而不會違反重新綁定非局部變數的限制。
以上是在 Python 2.x 中存取非局部變數:如何解決限制?的詳細內容。更多資訊請關注PHP中文網其他相關文章!