Globale Variablen und wie man von einer Funktion in Python wechselt
-
Verwendung von
Globale Variablen
und ändern Sie sie von einer Funktion in Python -
Erstellen Sie die Variable
Global
in Python -
Ändern Sie den Wert der Variablen
Global
aus einer Funktion in Python -
das Schlüsselwort
global
in Python - die Mehrfachfunktionen und eine globale Variable
-
eine Funktion, die eine Variable mit dem gleichen Namen wie eine
globale
Variable hat - Fazit
Globale
Variablen in Python sind solche Variablen, die einen globalen Geltungsbereich
haben. Mit anderen Worten, ihr Umfang ist nicht auf eine bestimmte Funktion oder einen Block des Quellcodes beschränkt.
Verwendung von Globale Variablen
und ändern Sie sie von einer Funktion in Python
Deklarieren Sie zuerst die Variable x
.
def avengers():
x = 10
print("Gibberish")
avengers()
print(x)
Ausgabe:
Gibberish
NameError: name 'x' is not defined
Die Variable x
befindet sich innerhalb der Funktion avengers
. Das bedeutet, dass der Gültigkeitsbereich dieser Variablen nur auf diese Funktion beschränkt ist.
Aus diesem Grund erhalten wir eine Fehlermeldung, wenn wir versuchen, auf diese Variable außerhalb dieser Funktion zuzugreifen.
Erstellen Sie die Variable Global
in Python
Verschieben Sie die Deklaration der Variablen x
aus der Funktion.
x = 10
def avengers():
print("Gibberish")
avengers()
print(x)
Ausgabe:
Gibberish
10
Die Variable x
wird ausserhalb der Funktion definiert und kann daher überall in unserem Programm verwendet werden.
Außerdem ist es eine globale
Variable. Das Deklarieren einer Variablen im globalen Geltungsbereich erzeugt eine globale
Variable in Python.
Wir können auch auf die globale
Variable x
von der avengers
-Funktion zugreifen.
x = 10
def avengers():
print("From avengers:", x)
avengers()
print("Outside avengers:", x)
Ausgabe:
From avengers: 10
Outside avengers: 10
Ändern Sie den Wert der Variablen Global
aus einer Funktion in Python
Dieser Code hat eine globale
Variable x
mit 10
. Dann fügen wir innerhalb der Funktion change
12
zu dieser Variablen x
hinzu.
Eine Druckanweisung innerhalb der Funktion sollte den aktualisierten Wert von x
ausgeben.
x = 10
def change():
x = x + 12
print(x)
change()
Ausgabe:
UnboundLocalError: local variable 'x' referenced before assignment
In Python kann eine Funktion nur auf eine globale Variable
zugreifen und diese drucken. Wir müssen der Funktion, die sich auf eine Zuweisung oder Änderung der globalen Variablen
bezieht, mitteilen.
Wenn wir dies nicht angeben, denkt die Funktion, dass Zuweisungen und Änderungen an der lokalen Variablen selbst vorgenommen werden. Daher erhalten wir diesen Fehler.
Verwenden Sie das Schlüsselwort global
, um den Wert einer globalen Variablen
innerhalb einer Python-Funktion zu ändern.
das Schlüsselwort global
in Python
Python gibt Ihnen ein Schlüsselwort namens global
, um eine Variable außerhalb ihres Gültigkeitsbereichs zu ändern. Verwenden Sie es, wenn Sie den Wert einer Variablen ändern oder Zuweisungen vornehmen müssen.
Lassen Sie uns versuchen, den obigen Code mit dem Schlüsselwort global
zu reparieren.
x = 10
def change():
global x
x = x + 12
print(x)
change()
Ausgabe:
22
Sehen Sie, wie wir x
mit dem Schlüsselwort global
in der dritten Zeile als global angeben.
Lassen Sie uns nun den Wert der Variablen x
sehen, wenn Sie ihn außerhalb der Funktion drucken.
x = 10
def change():
global x
x = x + 12
print(x)
change()
print(x)
Ausgabe:
22
22
Da die Funktion x
von 10
auf 22
aktualisiert hat, erhalten wir den aktualisierten Wert als Ausgabe, selbst wenn auf die Variable außerhalb des lokalen Gültigkeitsbereichs zugegriffen wird.
var = "A"
def chocolate():
print("From chocolate:", var)
def cake():
global var
var = var * 2
print("From cake:", var)
chocolate()
cake()
print("From main:", var)
Ausgabe:
From chocolate: A
From cake: AA
From main: AA
Die beste Schlussfolgerung, die Sie aus dieser Ausgabe ziehen können, ist: Auf die Reihenfolge kommt es an. Die Funktion chocolate
verwendet den Anfangswert von var
und nicht den geänderten Wert.
Das liegt daran, dass die Funktion cake
, die den Wert von var
modifiziert, nach der Funktion chocolate
aufgerufen wird. Wenn wir zuerst die Funktion cake
aufrufen, verwendet die Funktion chocolate
ebenfalls den aktualisierten Wert von var
.
var = "A"
def chocolate():
print("From chocolate:", var)
def cake():
global var
var = var * 2
print("From cake:", var)
cake()
chocolate()
print("From main:", var)
Ausgabe:
From cake: AA
From chocolate: AA
From main: AA
Dies bringt uns zu einigen Regeln, die Sie befolgen müssen, wenn Sie das Schlüsselwort global
von Python verwenden.
- Standardmäßig ist eine Variable innerhalb einer Funktion lokal und eine Variable außerhalb einer Funktion
global
. Verwenden Sie dieses Schlüsselwort nicht für Variablen außerhalb einer Funktion. - Die Verwendung des Schlüsselworts
global
außerhalb einer Funktion in Python hat keinerlei Auswirkungen auf den Code. - Die Hauptverwendung des Schlüsselworts
global
besteht darin, Zuweisungen oder Änderungen in Python vorzunehmen. Daher brauchen wir es nicht, um einfach auf die Variable zuzugreifen oder sie zu drucken.
die Mehrfachfunktionen und eine globale Variable
Hier haben wir eine globale Variable s
mit dem Wert 1
. Sehen Sie, wie die Funktion college
das Schlüsselwort global
verwendet, um den Wert von s
zu ändern.
s = 1
def college():
global s
s = s + 5
print("College students: ", s)
return s
def school():
s = college()
s = s + 10
print("School students: ", s)
return s
college()
school()
print("Global students: ", s)
Ausgabe:
College students: 6
College students: 11
School students: 21
Global students: 11
Zuerst nennen wir die Funktion college
. Diese Funktion modifiziert die globale Variable s
und ändert sie auf 6
.
Wir erhalten die Ausgabe als 6
von der ersten Druckanweisung. Dann nennen wir die Funktion school
.
Wir nennen die Funktion school
innerhalb der Funktion college
. Diesmal modifiziert die Funktion college
auch den Wert der Variablen s
.
Es nimmt den vorherigen Wert von 6
und aktualisiert ihn dann auf 11
. Der Endwert der globalen Variablen wird also jetzt 11
.
Dann ändert die Funktion Schule
es, aber dies wird nicht in der globalen Variable aktualisiert. Es verwendet den aktualisierten Wert von s
und druckt den Wert nach dem Hinzufügen von 10
.
Das Schlüsselwort global
wird nicht verwendet. Daher die Ausgabe 21
. Jetzt können Sie sehen, warum die Ausgabe der letzten Anweisung 11
ist.
Dies ist nichts anderes als der aktualisierte Wert der globalen Variablen s
.
eine Funktion, die eine Variable mit dem gleichen Namen wie eine globale
Variable hat
Es besteht die Möglichkeit, dass wir eine Funktion haben, in der eine Variable mit demselben Namen wie eine globale
Variable deklariert ist.
Eine unvermeidliche Frage, die sich hier stellt, ist: Welche Variable wird die Funktion verwenden? Lokal oder global? Lass uns sehen.
# the global variable
a = 5
# function
def music():
# variable inside function with same name as global variable
a = 10
print("Music:", a)
music()
print(a)
Ausgabe:
Music: 10
5
In diesem Code gibt es eine globale
Variable a
, deren Wert 5
ist. Die Funktion Musik
hat auch eine Variable namens a
.
Der Wert dieser Variable ist 10
. Wenn wir auf den Wert der Variablen a
innerhalb der Funktion zugreifen, erhalten wir den Wert der lokalen Variablen dieser Funktion, nämlich 10
.
Wenn wir von außerhalb dieser Funktion auf den Wert von a
zugreifen, erhalten wir die Ausgabe als 5
.
Dies bedeutet, dass, wenn die lokale
Variable in einem bestimmten Gültigkeitsbereich mit demselben Namen wie die globale
Variable vorhanden ist, sie eine höhere Priorität als die globale Variable hat.
Fazit
Dieses Tutorial lehrte die Grundlagen von globalen
Variablen in Python. Wir haben gesehen, wie sie sich von lokalen
Variablen unterscheiden und wie wir sie in Python erstellen.