Globale, lokale und nichtlokale Python-Variablen (mit Beispielen)

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 globalSchlü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 globalweil wir den x * 2zweimal 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 nonlocalSchlü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.

Interessante Beiträge...