Python Global, Local & Nonlocal Variablen verstehen
Python Global, Local & Nonlocal Variablen verstehen
Meistern Sie die Verwendung von globalen, lokalen und nonlokalen Variablen in Python und wissen Sie, wann Sie welche für sauberen, wartbaren Code anwenden.
Video: Python Lokale und Globale Variablen
Globale Variablen
In Python ist eine Variable, die außerhalb jeder Funktion – auf Modulebene – deklariert wird, eine globale Variable. Sie kann von überall im Modul gelesen werden, muss aber mit dem global-Schlüsselwort deklariert werden, wenn Sie sie innerhalb einer Funktion modifizieren möchten.
Beispiel: Globale Variable erstellen und lesen
x = "global"
def foo():
print("x inside:", x)
foo()
print("x outside:", x)
Ausgabe
x inside: global x outside: global
Der Versuch, x ohne globale Deklaration neu zuzuweisen, führt zu einem UnboundLocalError:
x = "global"
def foo():
x = x * 2
print(x)
foo()
Ausgabe
UnboundLocalError: local variable 'x' referenced before assignment
Um eine globale Variable innerhalb einer Funktion zu modifizieren, verwenden Sie das global-Schlüsselwort:
x = "global"
def foo():
global x
x = x * 2
print(x)
foo()
Ausgabe
globalglobal
Lokale Variablen
Beispiel: Zugriff auf lokale Variable außerhalb ihres Gültigkeitsbereichs
def foo():
y = "local"
foo()
print(y)
Ausgabe
NameError: name 'y' is not defined
Lokale Variable korrekt definieren und verwenden:
def foo():
y = "local"
print(y)
foo()
Ausgabe
local
Globale und lokale Variablen kombinieren
Es ist üblich, beide Gültigkeitsbereiche im selben Modul zu nutzen. Das global-Schlüsselwort stellt sicher, dass eine Variable auf die Modul-Instanz verweist.
x = "global "
def foo():
global x
y = "local"
x = x * 2
print(x)
print(y)
foo()
Ausgabe
global global local
Wenn eine lokale Variable denselben Namen wie eine globale hat, sind sie unabhängig:
x = 5
def foo():
x = 10
print("local x:", x)
foo()
print("global x:", x)
Ausgabe
local x: 10 global x: 5
Nonlokale Variablen
Verschachtelte Funktionen können auf Variablen aus ihrem umgebenden (aber nicht globalen) Gültigkeitsbereich zugreifen und diese modifizieren, indem sie das nonlocal-Schlüsselwort verwenden.
def outer():
x = "local"
def inner():
nonlocal x
x = "nonlocal"
print("inner:", x)
inner()
print("outer:", x)
outer()
Ausgabe
inner: nonlocal outer: nonlocal
Hinweis: Das Aktualisieren einer nonlokalen Variable innerhalb der inneren Funktion aktualisiert die Variable im Gültigkeitsbereich der äußeren Funktion.
Python
- C Variablen, Konstanten und Literale: Ein vollständiger Leitfaden
- Python-Schlüsselwörter & Bezeichner: Reservierte Wörter & Benennungskonventionen meistern
- Python-Anweisungen, Einrückung & Kommentare: Klare Anleitung
- Python-Variablen, Konstanten & Literale – Umfassender Leitfaden
- Python-Typkonvertierung & Casting meistern: Umfassender Leitfaden
- Python I/O & Modul-Importe meistern: Praxisleitfaden
- Pythons global-Schlüsselwort meistern: Wie & wann man es verwendet
- Zahlen, Typkonvertierung und Mathematik in Python meistern
- Verzeichnis- und Dateioperationen in Python meistern
- Python-Fehler & eingebaute Exceptions meistern