Heim > Backend-Entwicklung > Python-Tutorial > Wie funktioniert das „nonlocal'-Schlüsselwort von Python?

Wie funktioniert das „nonlocal'-Schlüsselwort von Python?

Mary-Kate Olsen
Freigeben: 2024-12-07 22:33:17
Original
511 Leute haben es durchsucht

How Does Python's `nonlocal` Keyword Work?

„nonlocal“ in Python 3 verstehen: Ein tiefer Einblick

Python 3 hat das leistungsstarke Schlüsselwort „nonlocal“ eingeführt, mit dem Sie Änderungen vornehmen können Variablen in einem äußeren Bereich aus verschachtelten Funktionen. Diese Frage bietet eine umfassende Erklärung der Funktionsweise von „nichtlokal“.

Was ist „nichtlokal“?

„nichtlokal“ entkoppelt eine Variable vom lokalen Gültigkeitsbereich einer verschachtelten Variable Funktion, die es ihr ermöglicht, in einem äußeren Bereich auf die Variable zuzugreifen. Dies ist nützlich, wenn Sie eine Variable in einem äußeren Bereich ändern müssen, ohne globale Variablen oder andere komplizierte Methoden zu verwenden.

So funktioniert „nichtlokal“

Bedenken Sie den folgenden Code Snippet ohne Verwendung "nonlocal":

x = 0
def outer():
    x = 1
    def inner():
        x = 2
        print("inner:", x)
    inner()
    print("outer:", x)
outer()
print("global:", x)
Nach dem Login kopieren

Ausgabe:

inner: 2
outer: 1
global: 0
Nach dem Login kopieren

Beachten Sie, dass das Ändern des Werts von x in der Funktion inner() keinen Einfluss auf den Wert von x in der Funktion Outer() hat . Dies liegt daran, dass inner() eine lokale Variable mit dem Namen x erstellt, die die äußere Variable mit demselben Namen überschattet.

Jetzt ändern wir den Code mit „nonlocal“:

x = 0
def outer():
    x = 1
    def inner():
        nonlocal x
        x = 2
        print("inner:", x)
    inner()
    print("outer:", x)
outer()
print("global:", x)
Nach dem Login kopieren

Ausgabe:

inner: 2
outer: 2
global: 0
Nach dem Login kopieren

In diesem Fall wird durch die Verwendung von „nonlocal“ in der inner()-Funktion eine Verknüpfung zur x-Variablen im Outer()-Bereich hergestellt. Indem wir die Variable innerhalb der inneren Funktion ändern, ändern wir effektiv dieselbe Variable im äußeren Bereich.

Verwendung von „global“ vs. „nichtlokal“

Die Funktion „global Das Schlüsselwort „kann auch verwendet werden, um auf globale Variablen zuzugreifen und diese zu ändern, es verhält sich jedoch anders als „nicht lokal“. „global“ bindet die Variable an den wirklich globalen Bereich, während „nonlocal“ sie an den nächstgelegenen umschließenden Bereich bindet.

Betrachten Sie den folgenden Codeausschnitt mit „global“:

x = 0
def outer():
    x = 1
    def inner():
        global x
        x = 2
        print("inner:", x)
    inner()
    print("outer:", x)
outer()
print("global:", x)
Nach dem Login kopieren

Ausgabe :

inner: 2
outer: 1
global: 2
Nach dem Login kopieren

Wie Sie sehen können, wirkt sich die Änderung des Werts von x in der inneren Funktion jetzt auf die globale Variable aus x anstelle des äußeren()-Bereichs.

Zusammenfassung

„nonlocal“ ist ein wichtiges Python-Schlüsselwort, mit dem Sie von verschachtelten Funktionen aus auf Variablen in äußeren Bereichen zugreifen und diese ändern können ohne den globalen Namensraum zu verschmutzen. Es bietet eine klare und effiziente Möglichkeit, mit Daten über mehrere Bereiche hinweg zu arbeiten und den Code besser lesbar und wartbar zu machen.

Das obige ist der detaillierte Inhalt vonWie funktioniert das „nonlocal'-Schlüsselwort von Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage