Heim >Backend-Entwicklung >Python-Tutorial >Einführung in die Deklaration und Analyse nichtlokaler und globaler Schlüsselwörter in Python
1. Globale und nichtlokale Deklarationen in Python
Der folgende Code
a = 10 def foo(): a = 100Das Ergebnis a der Ausführung von foo() ist immer noch 10
Zuweisung an Variable in Funktion, Die Variable ist immer gebunden. 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 des Namens zunächst den lokalen Bereich und dann Schicht für Schicht den durch die externe verschachtelte Funktion definierten Bereich von innen nach außen , wie z. B. Finden Der globale Befehlsraum und der integrierte Namespace werden nicht durchsucht.
def countdown(start): n = start def decrement(): n -= 1In Python2 kann die Lösung sein: Geben Sie den geänderten Wert ein Eine Liste oder ein Wörterbuch. In Python3 können Sie die nichtlokale Anweisung verwenden, um die Änderung abzuschließen mit dem globalen Schlüsselwort
nonlocal
def countdown(start): n = start def decrement(): nonlocal n n -= 1
Zunächst muss klar sein, dass das Schlüsselwort nonlocal im Abschluss definiert ist. Bitte schauen Sie sich den folgenden Code an:
Ergebnis
Fügen Sie nun „nonlocal“ zum hinzu Schlüsselwortdeklaration:
x = 0 def outer(): x = 1 def inner(): x = 2 print("inner:", x) inner() print("outer:", x) outer() print("global:", x)
Ergebnisse
# inner: 2 # outer: 1 # global: 0
x = 0 def outer(): x = 1 def inner(): nonlocal x x = 2 print("inner:", x) inner() print("outer:", x) outer() print("global:", x)
global
# inner: 2 # outer: 2 # global: 0
Infolgedessen funktioniert
Das obige ist der detaillierte Inhalt vonEinführung in die Deklaration und Analyse nichtlokaler und globaler Schlüsselwörter in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!