logo

Globale und lokale Variablen in Python

Globale Python-Variablen sind solche, die in keiner Funktion definiert sind und im Gegensatz zu Python einen globalen Gültigkeitsbereich haben lokale Variablen sind solche, die innerhalb einer Funktion definiert sind und deren Geltungsbereich nur auf diese Funktion beschränkt ist. Mit anderen Worten können wir sagen, dass auf lokale Variablen nur innerhalb der Funktion zugegriffen werden kann, in der sie initialisiert wurden, während auf globale Variablen im gesamten Programm und innerhalb jeder Funktion zugegriffen werden kann.

Lokale Python-Variablen

Lokale Variablen in Python sind solche, die innerhalb einer Funktion initialisiert werden und nur zu dieser bestimmten Funktion gehören. Es kann nirgendwo außerhalb der Funktion darauf zugegriffen werden. Sehen wir uns an, wie man eine lokale Variable erstellt.



Lokale Variablen in Python erstellen

Lokale Variablen definieren und darauf zugreifen

Python3




YouTube-Video mit VLC herunterladen





def> f():> ># local variable> >s>=> 'I love Geeksforgeeks'> >print>(s)> # Driver code> f()>

>

>

Ausgabe

I love Geeksforgeeks>

Kann eine lokale Variable außerhalb einer Funktion verwendet werden?

Wenn wir versuchen, diese lokale Variable außerhalb der Funktion zu verwenden, wollen wir sehen, was passiert.

Python3




def> f():> > ># local variable> >s>=> 'I love Geeksforgeeks'> >print>(>'Inside Function:'>, s)> # Driver code> f()> print>(s)>

>

>

Ausgabe:

 NameError : name 's' is not defined>

Globale Python-Variablen

Dies sind diejenigen, die außerhalb jeder Funktion definiert sind und auf die im gesamten Programm zugegriffen werden kann, d. h. innerhalb und außerhalb jeder Funktion. Sehen wir uns an, wie man eine globale Python-Variable erstellt.

Erstellen Sie eine globale Variable in Python

Definieren und Zugreifen auf globale Python-Variablen.

Python3




# This function uses global variable s> def> f():> >print>(>'Inside Function'>, s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()> print>(>'Outside Function'>, s)>

>

>

Ausgabe

Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks>

Die Variable s ist als globale Variable definiert und wird sowohl innerhalb der Funktion als auch außerhalb der Funktion verwendet.

Notiz: Da es keine lokalen Variablen gibt, wird der Wert der globalen Variablen verwendet. Stellen Sie jedoch sicher, dass sowohl die lokalen als auch die globalen Variablen denselben Namen haben.

Warum verwenden wir in Python lokale und globale Variablen?

Was ist nun, wenn eine Python-Variable mit demselben Namen sowohl innerhalb einer Funktion als auch global initialisiert wird? Nun stellt sich die Frage: Wird die lokale Variable einen Einfluss auf die globale Variable haben oder umgekehrt, und was passiert, wenn wir den Wert einer Variablen innerhalb der Funktion f() ändern? Wird es auch die Globals betreffen? Wir testen es im folgenden Codeteil:

Beispiel

Wenn eine Variable mit demselben Namen auch innerhalb des Funktionsumfangs definiert ist, wird nur der innerhalb der Funktion angegebene Wert und nicht der globale Wert ausgegeben.

Python3




# This function has a variable with> # name same as s.> def> f():> >s>=> 'Me too.'> >print>(s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()> print>(s)>

>

>

Ausgabe

Me too. I love Geeksforgeeks>

Was ist nun, wenn wir versuchen, den Wert einer globalen Variablen innerhalb der Funktion zu ändern? Sehen wir uns das anhand des folgenden Beispiels an.

Python3




# This function uses global variable s> def> f():> >s>+>=> 'GFG'> >print>(>'Inside Function'>, s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()>

>

>

Ausgabe:

 UnboundLocalError : local variable 's' referenced before assignment>

Damit das obige Programm funktioniert, müssen wir das globale Schlüsselwort in Python verwenden. Mal sehen, was dieses globale Schlüsselwort ist.

Das globale Schlüsselwort

Wir müssen nur das verwenden globales Schlüsselwort in einer Funktion, wenn wir Zuweisungen durchführen oder die globale Variable ändern möchten. Global wird zum Drucken und Zugreifen nicht benötigt. Python geht aufgrund der Zuweisung zu s innerhalb von f() davon aus, dass wir eine lokale Variable benötigen, daher gibt die erste Anweisung die Fehlermeldung aus. Jede Variable, die innerhalb einer Funktion geändert oder erstellt wird, ist lokal, sofern sie nicht als globale Variable deklariert wurde. Um Python mitzuteilen, dass wir die globale Variable verwenden möchten, müssen wir das Schlüsselwort verwenden global , wie im folgenden Beispiel zu sehen ist:

Beispiel 1: Verwendung des globalen Python-Schlüsselworts

Python3




# This function modifies the global variable 's'> def> f():> >global> s> >s>+>=> ' GFG'> >print>(s)> >s>=> 'Look for Geeksforgeeks Python Section'> >print>(s)> # Global Scope> s>=> 'Python is great!'> f()> print>(s)>

>

>

Ausgabe

Python is great! GFG Look for Geeksforgeeks Python Section Look for Geeksforgeeks Python Section>

Jetzt gibt es keine Unklarheiten.

long zu int Java

Beispiel 2: Verwendung globaler und lokaler Python-Variablen

Python3




a>=> 1> # Uses global because there is no local 'a'> def> f():> >print>(>'Inside f() : '>, a)> # Variable 'a' is redefined as a local> def> g():> >a>=> 2> >print>(>'Inside g() : '>, a)> # Uses global keyword to modify global 'a'> def> h():> >global> a> >a>=> 3> >print>(>'Inside h() : '>, a)> # Global scope> print>(>'global : '>, a)> f()> print>(>'global : '>, a)> g()> print>(>'global : '>, a)> h()> print>(>'global : '>, a)>

>

>

Ausgabe

global : 1 Inside f() : 1 global : 1 Inside g() : 2 global : 1 Inside h() : 3 global : 3>

Unterschied s/w Lokale Variable vs. Globale Variablen

Vergleichsbasis Globale Variable Lokale Variable
Definition außerhalb der Funktionen deklariert innerhalb der Funktionen deklariert
Lebensdauer Sie werden zu Beginn der Programmausführung erstellt und gehen verloren, wenn das Programm beendet wird Sie werden erstellt, wenn die Funktion mit der Ausführung beginnt, und gehen verloren, wenn die Funktion endet
Datenübertragung Bietet Datenaustausch Es bietet keine Datenfreigabe
Umfang Kann im gesamten Code aufgerufen werden Kann nur innerhalb der Funktion zugreifen
Benötigte Parameter Eine Parameterübergabe ist nicht erforderlich Parameterübergabe ist erforderlich
Lagerung Ein vom Compiler ausgewählter fester Speicherort Sie bleiben auf dem Stapel
Wert Sobald sich der Wert ändert, wird er im gesamten Code widergespiegelt Sobald die Variable geändert wurde, hat sie keinen Einfluss auf andere Funktionen des Programms