Heim > Artikel > Backend-Entwicklung > Detaillierte Analyse von nichtlokalen und globalen
Dieser Artikel stellt Ihnen hauptsächlich die relevanten Informationen zur Deklaration und Analyse der nichtlokalen und globalen Schlüsselwörter in Python vor. Ich glaube, dass sie für alle Freunde, die sie benötigen, einen gewissen Referenzwert haben Lesen Sie es gemeinsam.
1. Globale und nichtlokale Deklarationen in Python
Der folgende Code
a = 10 def foo(): a = 100
wird ausgeführt. Das Ergebnis von foo() a ist immer noch die Zuweisung an die
-Variable
-Funktion . Die Variable ist immer an die lokale Namespace, dieses Verhalten kann mit der globalen Anweisung geändert werden.
>>> a 10 >>> def foo(): ... global a ... a = 100 ... >>> a 10 >>> foo() >>> a 100Überprüfen Sie beim Parsen eines Namens zunächst den lokalen Bereich und dann Schicht für Schicht den durch die externe verschachtelte Funktion definierten Bereich. Wenn
nicht gefunden werden kann, durchsuchen Sie Globaler Befehlsraum und integrierte Namespaces.
Intern Funktionen können lokale Variablen, die in externen Funktionen definiert sind, nicht neu zuweisen
def countdown(start): n = start def decrement(): n -= 1In Python2 kann die Lösung darin bestehen, die geänderten Werte in eine Liste einzufügen Im Wörterbuch können Sie in Python3 die nichtlokale Anweisung verwenden, um die Änderung abzuschließen
def countdown(start): n = start def decrement(): nonlocal n n -= 1
2. Nichtlokale und globale Python-Schlüsselwortanalyse
nonlocal
Zunächst muss klar sein, dass das Schlüsselwort nonlocal im Abschluss definiert ist. Schauen Sie sich bitte den folgenden Code an:x = 0 def outer(): x = 1 def inner(): x = 2 print("inner:", x) inner() print("outer:", x) outer() print("global:", x)Ergebnis
# inner: 2 # outer: 1 # global: 0Fügen Sie nun das nichtlokale Schlüsselwort zum zu deklarierenden Abschluss hinzu:
x = 0 def outer(): x = 1 def inner(): nonlocal x x = 2 print("inner:", x) inner() print("outer:", x) outer() print("global:", x)
Ergebnis
# inner: 2 # outer: 2 # global: 0Sehen Sie den Unterschied? Dies ist eine Funktion, die in einer Funktion verschachtelt ist. Bei Verwendung von nonlocal wird deklariert, dass die Variable nicht nur in der verschachtelten Funktion inner() gültig ist, sondern in der gesamten großen Funktion.
Immer noch das Gleiche, schauen Sie sich ein Beispiel an:
x = 0 def outer(): x = 1 def inner(): global x x = 2 print("inner:", x) inner() print("outer:", x) outer() print("global:", x)
global funktioniert auf Variablen in der gesamten Umgebung, nicht auf Variablen in Funktionsklassen.
# inner: 2 # outer: 1 # global: 2
Zusammenfassung[Verwandte Empfehlungen]
1.
Python kostenloses Video-TutorialPython-Grundlagen-Einführungs-TutorialPython trifft auf Datenerfassungs-Video-TutorialDas obige ist der detaillierte Inhalt vonDetaillierte Analyse von nichtlokalen und globalen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!