Python global, local and non-local variables

Table of Contents

In diesem Tutorial erfahren Sie mehr über globale Python-Variablen, lokale Variablen, nicht-lokale Variablen und deren Verwendung.

 

Globale Variablen

In Python wird eine außerhalb der Funktion oder im globalen Geltungsbereich 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 innerhalb:", x)


foo()
print("x draußen:", x)

 

Output

x innerhalb: global
x draußen: global

 

Im obigen Code haben wir erstellt x als globale Variable und definiert a foo()
um die globale Variable zu druckenx. Schließlich nennen wir die foo() was den Wert von druckt x.

Was ist, wenn Sie den Wert von ändern möchten x innerhalb einer Funktion?

x = "global"

def foo():
    x = x * 2
    print(x)

foo()

 

Output

UnboundLocalError: local variable 'x' referenced before assignment

 

Die Ausgabe zeigt einen Fehler an, da Python . behandelt x als lokale Variable und x ist auch innen nicht definiert foo().

 

Damit dies funktioniert, verwenden wir die global Stichwort. Besuchen Sie Python Global Keyword, um mehr zu erfahren.

 


 

 

Lokale Variablen

 

Eine im Funktionsrumpf oder im lokalen Gültigkeitsbereich deklarierte Variable wird als lokale Variable bezeichnet.

 

Beispiel 2: Zugriff auf lokale Variable außerhalb des Gültigkeitsbereichs

 

def foo():
    y = "local"


foo()
print(y)

 

Output

NameError: name 'y' is not defined

 

Die Ausgabe zeigt einen Fehler an, weil wir versuchen, auf eine lokale Variable zuzugreifen y
in einem globalen Geltungsbereich, während die lokale Variable nur innerhalb funktioniert foo() 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()

 

Output

local

 

 

Werfen wir einen Blick auf die früheres problem  wo x war eine globale Variable und wir wollten sie ändern x innerhalb foo().

 


 

Globale und lokale Variablen

Hier zeigen wir, wie Sie globale Variablen und lokale Variablen im selben Code verwenden.

 

Beispiel 4: Verwenden von globalen und lokalen Variablen im gleichen Code

 

x = "global "

def foo():
    global x
    y = "local"
    x = x * 2
    print(x)
    print(y)

foo()

 

Output

global global 
local

 

 

Im obigen Code deklarieren wir x als globaler und y als lokale Variable im foo().
Dann verwenden wir den Multiplikationsoperator * um die globale Variable zu ändern x und wir drucken beide x and y.

 

Nach dem Aufruf des foo(), der Wert von x wird global global weil wir die benutzt haben x * 2 zum zweimaligen Drucken global. Danach drucken wir den Wert der lokalen Variable y d.h. local.

 


 

Beispiel 5: Globale Variable und lokale Variable mit gleichem Namen

 

x = 5

def foo():
    x = 10
    print("local x:", x)


foo()
print("global x:", x)

 

Output

local x: 10
global x: 5

 

 

Im obigen Code haben wir den gleichen Namen verwendet x sowohl für globale als auch für lokale Variable. Wir erhalten ein anderes Ergebnis, wenn wir dieselbe Variable ausgeben, da die Variable in beiden Gültigkeitsbereichen deklariert ist, d. h. im lokalen Gültigkeitsbereich darin foo() und globaler Geltungsbereich außerhalb foo().

 

Wenn wir die Variable nach innen druckenfoo() es gibt aus local x: 10. Dies wird als lokaler Gültigkeitsbereich der Variablen bezeichnet.

 

Ähnlich verhält es sich, wenn wir die Variable außerhalb der foo(), es gibt aus global x: 5. Dies wird als globaler Gültigkeitsbereich der Variablen bezeichnet.

 


 

 

Nichtlokale Variablen

 

Nichtlokale Variablen werden in verschachtelten Funktionen verwendet, deren lokaler Geltungsbereich nicht definiert ist. Das bedeutet, dass sich die Variable weder im lokalen noch im globalen Gültigkeitsbereich befinden kann.

Sehen wir uns ein Beispiel an, wie eine nicht lokale Variable in Python verwendet wird.

Wir gebrauchen nonlocalSchlüsselwörter zum Erstellen nicht lokaler Variablen.

 

Beispiel 6: Erstellen Sie eine nicht lokale 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 ein verschachteltes inner() Funktion. Wir gebrauchen nonlocal Schlüsselwörter, um eine nicht lokale Variable zu erstellen. Die inner() Funktion ist im Umfang einer anderen Funktion definiert outer().

 

Notiz

Wenn wir den Wert einer nicht lokalen Variablen ändern, erscheinen die Änderungen in der lokalen Variablen.