Zunächst muss klar sein, dass das nonlocal-Schlüsselwort innerhalb des Abschlusses 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: 0
Fü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: 0
globalImmer noch das Gleiche, schauen wir uns ein Beispiel an:Sehen Sie den Unterschied? Dies ist eine -Funktion mit einer darin verschachtelten Funktion. 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.
x = 0 def outer(): x = 1 def inner(): global x x = 2 print("inner:", x) inner() print("outer:", x) outer() print("global:", x)
# inner: 2 # outer: 1 # global: 2
global gilt für die gesamte Umgebung. Wirkt auf die folgenden Variablen, nicht auf die Variablen der Funktionsklasse.
Das obige ist der detaillierte Inhalt vonAnweisungen zum Parsen nichtlokaler und globaler Python-Schlüsselwörter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!