In diesem Tutorial erfahren Sie mehr über globale Python-Variablen, lokale Variablen, nichtlokale Variablen und deren Verwendung.
Video: Lokale und globale Python-Variablen
Globale Variablen
In Python wird eine außerhalb der Funktion oder im globalen Bereich deklarierte Variable als globale Variable bezeichnet. Dies 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 innen: global x außen: global
Im obigen Code haben wir x als globale Variable erstellt und a definiert foo()
, um die globale Variable x zu drucken. Schließlich rufen wir das auf, foo()
das den Wert von x druckt.
Was ist, wenn Sie den Wert von x innerhalb einer Funktion ändern möchten?
x = "global" def foo(): x = x * 2 print(x) foo()
Ausgabe
UnboundLocalError: Lokale Variable 'x', auf die vor der Zuweisung verwiesen wird
Die Ausgabe zeigt einen Fehler an, da Python x als lokale Variable behandelt und x auch nicht darin definiert ist foo()
.
Damit dies funktioniert, verwenden wir das global
Schlüsselwort. Besuchen Sie Python Global Keyword, um mehr zu erfahren.
Lokale Variablen
Eine Variable, die im Funktionskörper oder im lokalen Bereich deklariert ist, wird als lokale Variable bezeichnet.
Beispiel 2: Zugriff auf lokale Variablen außerhalb des Bereichs
def foo(): y = "local" foo() print(y)
Ausgabe
NameError: Name 'y' ist nicht definiert
Die Ausgabe zeigt einen Fehler an, weil wir versuchen, auf eine lokale Variable y in einem globalen Bereich zuzugreifen, während die lokale Variable nur innerhalb foo()
oder im lokalen Bereich funktioniert .
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
lokal
Werfen wir einen Blick auf das frühere Problem, bei dem x eine globale Variable war und wir x darin ändern wollten foo()
.
Globale und lokale Variablen
Hier zeigen wir, wie globale und lokale Variablen im selben Code verwendet werden.
Beispiel 4: Verwenden globaler und lokaler Variablen im selben Code
x = "global " def foo(): global x y = "local" x = x * 2 print(x) print(y) foo()
Ausgabe
global global lokal
Im obigen Code deklarieren wir x als globale und y als lokale Variable in der foo()
. Dann verwenden wir den Multiplikationsoperator *
, um die globale Variable x zu ändern, und wir drucken sowohl x als auch y.
Nach dem Aufruf von foo()
wird der Wert von x, global global
weil wir den x * 2
zweimal zum Drucken verwendet haben global
. Danach drucken wir den Wert der lokalen Variablen y dh 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
lokales x: 10 globales x: 5
Im obigen Code haben wir den gleichen Namen x sowohl für die globale als auch für die lokale Variable verwendet. Wir erhalten ein anderes Ergebnis, wenn wir dieselbe Variable drucken, da die Variable in beiden Bereichen deklariert ist, dh im lokalen Bereich innerhalb foo()
und im globalen Bereich außerhalb foo()
.
When we print the variable inside foo()
it outputs local x: 10
. This is called the local scope of the variable.
Similarly, when we print the variable outside the foo()
, it outputs global x: 5. This is called the global scope of the variable.
Nonlocal Variables
Nonlocal variables are used in nested functions whose local scope is not defined. This means that the variable can be neither in the local nor the global scope.
Let's see an example of how a nonlocal variable is used in Python.
We use nonlocal
keywords to create nonlocal variables.
Example 6: Create a nonlocal variable
def outer(): x = "local" def inner(): nonlocal x x = "nonlocal" print("inner:", x) inner() print("outer:", x) outer()
Output
inner: nonlocal outer: nonlocal
Im obigen Code gibt es eine verschachtelte inner()
Funktion. Wir verwenden nonlocal
Schlüsselwörter, um eine nichtlokale Variable zu erstellen. Die inner()
Funktion wird im Rahmen einer anderen Funktion definiert outer()
.
Hinweis : Wenn wir den Wert einer nichtlokalen Variablen ändern, werden die Änderungen in der lokalen Variablen angezeigt.