Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich in Python 2.x auf nichtlokale Variablen zugreifen?

Wie kann ich in Python 2.x auf nichtlokale Variablen zugreifen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-22 08:37:03155Durchsuche

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

Grundlegendes zum nichtlokalen Schlüsselwort in Python 2.x

In Python-Versionen vor 3.0 ist das nichtlokale Schlüsselwort nicht verfügbar. Dies bedeutet jedoch nicht, dass Sie innerhalb von Abschlüssen nicht auf nichtlokale Variablen zugreifen können.

Nichtlokale Variablen lesen

In Python 2.x können innere Funktionen weiterhin nichtlokale Variablen lesen Variablen, aber sie können sie nicht erneut binden. Dies bedeutet, dass Sie auf den Wert der Variablen zugreifen, ihn aber nicht ändern können.

Umgehung der Einschränkung

Um diese Einschränkung zu überwinden, können Sie eine Problemumgehung mithilfe eines Wörterbuchs anwenden. Speichern Sie Ihre nichtlokalen Daten im Wörterbuch, und dann können innere Funktionen das Objekt, auf das sich die Daten beziehen, ohne erneute Bindung manipulieren.

Betrachten Sie zum Beispiel das Beispiel aus Wikipedia:

<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>

In diesem Beispiel , kann die innere Funktion auf die im Wörterbuch „d“ gespeicherte Variable „y“ zugreifen. Obwohl die Variable „y“ selbst nicht geändert werden kann, kann ihr Wert innerhalb der inneren Funktion erhöht werden.

Das obige ist der detaillierte Inhalt vonWie kann ich in Python 2.x auf nichtlokale Variablen zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn