Wie kann in Abschlüssen in Python 2.x auf nichtlokale Variablen zugegriffen werden?

Patricia Arquette
Freigeben: 2024-10-22 08:38:30
Original
410 Leute haben es durchsucht

How can Nonlocal Variables be Accessed in Closures in Python 2.x?

Zugriff auf nichtlokale Variablen in Abschlüssen in Python 2.x

In Python 2.x das nichtlokale Schlüsselwort, das für den Zugriff auf und die Neubindung von nichtlokalen Variablen verwendet wird Variablen in Abschlüssen ist nicht verfügbar. Allerdings können innere Funktionen immer noch nicht-lokale Variablen lesen, wenn auch mit Einschränkungen.

Um das Fehlen eines nicht-lokalen Schlüsselworts zu umgehen, kann man ein Wörterbuch zum Speichern von Daten verwenden. Innere Funktionen können dann auf die im Wörterbuch gespeicherten Objekte zugreifen und diese ändern, auch wenn sie die nichtlokalen Variablen selbst nicht direkt neu binden können.

Betrachten Sie das folgende Beispiel:

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
Nach dem Login kopieren

Hier die äußere Funktion erstellt ein Wörterbuch „d“ und weist ihm einen Wert für „y“ zu. Die innere Funktion kann auf das im Wörterbuch gespeicherte „y“ zugreifen und es erhöhen. Das Ergebnis ist, dass jeder Aufruf von „f()“ einen inkrementierten Wert zurückgibt, was zeigt, dass innere Funktionen nichtlokale Objekte indirekt ändern können.

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

Quelle:php
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!