了解 Python 2.x 中的 nonlocal 關鍵字
在 3.0 之前的 Python 版本中,nonlocal 關鍵字不可用。然而,這並不意味著你不能訪問閉包內的非局部變數。
讀取非局部變數
在Python 2.x中,內部函數仍然可以讀取非局部變數變量,但不能重新綁定它們。這意味著您可以存取變數的值,但不能更改它。
解決限制
要克服此限制,您可以使用字典來解決此問題。將非本地資料儲存在字典中,然後內部函數可以操作資料引用的對象,而無需重新綁定。
例如,考慮維基百科中的範例:
<code class="python">def outer(): d = {'y': 0} def inner(): d['y'] += 1 return d['y'] return inner f = outer() print(f(), f(), f()) # Prints 1 2 3</code>
在此範例中,內部函數可以存取儲存在「d」字典中的「y」變數。雖然“y”變數本身無法修改,但它的值可以在內部函數內遞增。
以上是如何在 Python 2.x 中存取非局部變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!