Globale Variablen und wie man von einer Funktion in Python wechselt
-
Verwendung von
Globale Variablenund ändern Sie sie von einer Funktion in Python -
Erstellen Sie die Variable
Globalin Python -
Ändern Sie den Wert der Variablen
Globalaus einer Funktion in Python -
das Schlüsselwort
globalin Python - die Mehrfachfunktionen und eine globale Variable
-
eine Funktion, die eine Variable mit dem gleichen Namen wie eine
globaleVariable 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
globalaußerhalb einer Funktion in Python hat keinerlei Auswirkungen auf den Code. - Die Hauptverwendung des Schlüsselworts
globalbesteht 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.