首頁  >  文章  >  後端開發  >  如何在 Python 2.x 中存取非局部變數?

如何在 Python 2.x 中存取非局部變數?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-22 08:37:03155瀏覽

How Can I Access Nonlocal Variables in Python 2.x?

了解 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn