Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich nicht-globale Variablen in äußeren Bereichen in Python ändern?
In Python gehören Variablen innerhalb einer Funktion normalerweise zum lokalen Gültigkeitsbereich, sofern sie nicht ausdrücklich als global deklariert sind. Allerdings ist es manchmal notwendig, Variablen zu ändern, die in einem äußeren (umschließenden), aber nicht globalen Bereich definiert sind. In dieser Frage wird untersucht, wie dies erreicht werden kann.
Angesichts des Beispielcodes:
def A(): b = 1 def B(): # Access to 'b' is possible here. print(b) # Direct modification of 'b' fails. B() A()
Die Variable b in Funktion B befindet sich in einem nicht globalen, umschließenden Bereich. Versuche, b direkt zu ändern, führen zu einem UnboundLocalError. Das globale Schlüsselwort kann nicht verwendet werden, da b nicht auf globaler Ebene deklariert ist.
Python 3-Lösung:
Nichtlokaler Bereich (Python 3.x) kann sein Wird zur Lösung dieses Problems verwendet:
def A(): b = 1 def B(): nonlocal b # Nonlocal keyword b = 2 B() print(b) # Output: 2 A()
Python 2 Lösung:
Veränderliche Objekte (Python 2.x):
Anstatt Variablen direkt neu zuzuweisen, verwenden Sie veränderliche Objekte (z. B. Listen, Diktate) und ändern Sie ihre Werte:
def A(): b = [] def B(): b.append(1) # Mutation of 'b' B() B() print(b) # Output: [1, 1] A()
Das obige ist der detaillierte Inhalt vonWie kann ich nicht-globale Variablen in äußeren Bereichen in Python ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!