Python Globale, lokale und nicht lokale Variablen
Globale, lokale und nicht lokale Python-Variablen
In diesem Tutorial erfahren Sie mehr über globale Python-Variablen, lokale Variablen, nicht lokale Variablen und wo sie verwendet werden.
Video:Lokale und globale Python-Variablen
Globale Variablen
In Python wird eine außerhalb der Funktion oder im globalen Gültigkeitsbereich deklarierte Variable als globale Variable bezeichnet. Das bedeutet, dass auf eine globale Variable innerhalb oder außerhalb der Funktion zugegriffen werden kann.
Sehen wir uns ein Beispiel an, wie eine globale Variable in Python erstellt wird.
Beispiel 1:Erstellen Sie eine globale Variable
x = "global"
def foo():
print("x inside:", x)
foo()
print("x outside:", x)
Ausgabe
x inside: global x outside: global
Im obigen Code haben wir x erstellt als globale Variable und definierte einen foo()
um die globale Variable x auszugeben . Schließlich nennen wir die foo()
was den Wert von x ausgibt .
Was ist, wenn Sie den Wert von x ändern möchten innerhalb einer Funktion?
x = "global"
def foo():
x = x * 2
print(x)
foo()
Ausgabe
UnboundLocalError: local variable 'x' referenced before assignment
Die Ausgabe zeigt einen Fehler, weil Python x behandelt als lokale Variable und x ist auch nicht innerhalb von foo()
definiert .
Damit das funktioniert, verwenden wir den global
Stichwort. Besuchen Sie Python Global Keyword, um mehr zu erfahren.
Lokale Variablen
Eine im Rumpf der Funktion oder im lokalen Gültigkeitsbereich deklarierte Variable wird als lokale Variable bezeichnet.
Beispiel 2:Zugriff auf lokale Variable außerhalb des Bereichs
def foo():
y = "local"
foo()
print(y)
Ausgabe
NameError: name 'y' is not defined
Die Ausgabe zeigt einen Fehler, weil wir versuchen, auf eine lokale Variable y zuzugreifen in einem globalen Bereich, während die lokale Variable nur innerhalb von foo()
funktioniert oder lokaler Geltungsbereich.
Sehen wir uns ein Beispiel an, wie eine lokale Variable in Python erstellt wird.
Beispiel 3:Erstellen Sie eine lokale Variable
Normalerweise deklarieren wir eine Variable innerhalb der Funktion, um eine lokale Variable zu erstellen.
def foo():
y = "local"
print(y)
foo()
Ausgabe
local
Schauen wir uns das frühere Problem an, bei dem x war eine globale Variable und wir wollten x ändern innerhalb von foo()
.
Globale und lokale Variablen
Hier zeigen wir, wie man globale Variablen und lokale Variablen im selben Code verwendet.
Beispiel 4:Verwendung von globalen und lokalen Variablen im selben Code
x = "global "
def foo():
global x
y = "local"
x = x * 2
print(x)
print(y)
foo()
Ausgabe
global global local
Im obigen Code deklarieren wir x als global und y als lokale Variable im foo()
. Dann verwenden wir den Multiplikationsoperator *
um die globale Variable x zu ändern und wir drucken beide x und y .
Nach Aufruf der foo()
, der Wert von x wird zu global global
weil wir den x * 2
verwendet haben um zweimal global
zu drucken . Danach geben wir den Wert der lokalen Variablen y aus also local
.
Beispiel 5:Globale Variable und lokale Variable mit demselben Namen
x = 5
def foo():
x = 10
print("local x:", x)
foo()
print("global x:", x)
Ausgabe
local x: 10 global x: 5
Im obigen Code haben wir denselben Namen x verwendet sowohl für globale Variable als auch für lokale Variable. Wir erhalten ein anderes Ergebnis, wenn wir dieselbe Variable drucken, da die Variable in beiden Geltungsbereichen deklariert ist, d. h. im lokalen Geltungsbereich innerhalb von foo()
und globaler Geltungsbereich außerhalb von foo()
.
Wenn wir die Variable in foo()
drucken es gibt local x: 10
aus . Dies wird als lokaler Geltungsbereich der Variablen bezeichnet.
Ähnlich, wenn wir die Variable außerhalb von foo()
drucken , gibt es
global x:5
aus . Dies wird als globaler Geltungsbereich der Variablen bezeichnet.
Nichtlokale Variablen
Nichtlokale Variablen werden in verschachtelten Funktionen verwendet, deren lokaler Geltungsbereich nicht definiert ist. Das bedeutet, dass die Variable weder im lokalen noch im globalen Gültigkeitsbereich liegen kann.
Sehen wir uns ein Beispiel an, wie eine nichtlokale Variable in Python verwendet wird.
Wir verwenden nonlocal
Schlüsselwörter zum Erstellen nichtlokaler Variablen.
Beispiel 6:Erstellen Sie eine nichtlokale Variable
def outer():
x = "local"
def inner():
nonlocal x
x = "nonlocal"
print("inner:", x)
inner()
print("outer:", x)
outer()
Ausgabe
inner: nonlocal outer: nonlocal
Im obigen Code gibt es einen verschachtelten inner()
Funktion. Wir verwenden nonlocal
Schlüsselwörter, um eine nicht lokale Variable zu erstellen. Die inner()
Funktion ist im Geltungsbereich einer anderen Funktion outer()
definiert .
Hinweis :Wenn wir den Wert einer nichtlokalen Variablen ändern, erscheinen die Änderungen in der lokalen Variablen.
Python
- C-Variablen, Konstanten und Literale
- Python-Schlüsselwörter und -Identifikatoren
- Python-Anweisung, Einrückung und Kommentare
- Python-Variablen, -Konstanten und -Literale
- Python-Typkonvertierung und Typumwandlung
- Python-Eingabe, -Ausgabe und -Import
- Globales Python-Schlüsselwort
- Python-Zahlen, Typumwandlung und Mathematik
- Python-Verzeichnis- und Dateiverwaltung
- Python-Fehler und eingebaute Ausnahmen