Python Global Keyword
Table of Contents
In diesem Artikel erfahren Sie mehr über das globale Schlüsselwort, die globale Variable und die Verwendung globaler Schlüsselwörter.
Bevor Sie diesen Artikel lesen, stellen Sie sicher, dass Sie einige Grundlagen über Python Globale, lokale und nicht-lokale Variablen.
Was ist das globale Schlüsselwort?
In Python, global
Schlüsselwort ermöglicht es Ihnen, die Variable außerhalb des aktuellen Gültigkeitsbereichs zu ändern. Es wird verwendet, um eine globale Variable zu erstellen und Änderungen an der Variablen in einem lokalen Kontext vorzunehmen.
Regeln des globalen Schlüsselworts
Die Grundregeln für global
Schlüsselwort in Python sind:
- Wenn wir eine Variable innerhalb einer Funktion erstellen, ist sie standardmäßig lokal.
- Wenn wir eine Variable außerhalb einer Funktion definieren, ist sie standardmäßig global. Sie müssen nicht verwenden
global
Stichwort. - Wir gebrauchen
global
Schlüsselwort zum Lesen und Schreiben einer globalen Variablen innerhalb einer Funktion - Gebrauch von
global
Schlüsselwort außerhalb einer Funktion hat keine Auswirkung.
Verwendung des globalen Keywords
Nehmen wir ein Beispiel.
Beispiel 1: Zugriff auf globale Variable innerhalb einer Funktion
c = 1 # Globale Variable def add(): print(c) add()
Wenn wir das obige Programm ausführen, lautet die Ausgabe:
1
Es kann jedoch vorkommen, dass wir einige Szenarien haben, in denen wir die globale Variable innerhalb einer Funktion ändern müssen.
Beispiel 2: Ändern der globalen Variablen innerhalb der Funktion
c = 1 # global variable def add(): c = c + 2 # increment c by 2 print(c) add()
Wenn wir das obige Programm ausführen, zeigt die Ausgabe einen Fehler:
UnboundLocalError: local variable 'c' referenced before assignment
Dies liegt daran, dass wir nur auf die globale Variable zugreifen können, sie jedoch nicht innerhalb der Funktion ändern können.
Die Lösung hierfür ist die Verwendung der global
Stichwort.
Beispiel 3: Ändern der globalen Variablen innerhalb einer Funktion mit global
c = 0 # Globale Variable def add(): global c c = c + 2 # increment by 2 print("innerhalb add():", c) add() print("In main:", c)
Wenn wir das obige Programm ausführen, lautet die Ausgabe:
innerhalb add(): 2 In main: 2
Im obigen Programm definieren wir c als globales Schlüsselwort innerhalb der add()
Funktion.
Dann inkrementieren wir die Variable c durch 1
, i.e c = c + 2
. Danach nennen wir die add()
Funktion. Schließlich drucken wir die globale Variable c.
Wie wir sehen, hat sich die globale Variable auch außerhalb der Funktion geändert, c = 2
.
Globale Variablen in Python Modulen
In Python erstellen wir ein einzelnes Modul config.py
um globale Variablen zu speichern und Informationen über Python-Module innerhalb desselben Programms auszutauschen.
Hier sehen Sie, wie wir globale Variablen über die Python-Module hinweg gemeinsam nutzen können.
Beispiel 4: Eine globale Variable modulübergreifend in Python verwenden
Erstellen einer config.py
Datei, um globale Variablen zu speichern
a = 0 b = "empty"
Erstellen einer update.py
Datei, um globale Variablen zu ändern
import config config.a = 10 config.b = "alphabet"
Erstellen einer main.py
Datei, um Wertänderungen zu testen
import config import update print(config.a) print(config.b)
Wenn wir ausführen main.py
Datei, die Ausgabe ist
10 alphabet
Oben haben wir drei Dateien erstellt: config.py
, update.py
, und main.py
.
Das Modul config.py
speichert globale Variablen von a und b.In dem update.py
Datei importieren wir die config.py
Modul und ändern Sie die Werte von a und b.
Ebenso in der main.py
Datei importieren wir beide config.py
und update.py
modul. Schließlich drucken und testen wir die Werte globaler Variablen, unabhängig davon, ob sie geändert wurden oder nicht.
Global in verschachtelten Funktionen
Hier sehen Sie, wie Sie eine globale Variable in einer verschachtelten Funktion verwenden können.
Beispiel 5: Verwenden einer globalen Variablen in einer verschachtelten Funktion
def foo(): x = 20 def bar(): global x x = 25 print("Vor dem Aufruf der Bar: ", x) print("Bar jetzt anrufen") bar() print("Nach dem Aufruf von bar: ", x) foo() print("x in main: ", x)
Die Ausgabe ist:
Vor dem Aufruf der bar: 20 bar jetzt anrufen Nach dem Aufruf von bar: 20 x in main: 25
Im obigen Programm haben wir eine globale Variable innerhalb der verschachtelten Funktion deklariert bar()
. Innerhalb foo()
Funktion, x hat keine Auswirkung auf das globale Schlüsselwort.
Vor und nach dem Aufrufen bar()
, die Variable x nimmt den Wert der lokalen Variablen, d. h. x = 20
. Außerhalb der foo()
Funktion, die Variable x nimmt den Wert an, der in der bar()
Funktion d.h. x = 25
. Dies liegt daran, dass wir mit global
Stichwort in x um eine globale Variable im . zu erstellen bar()
Funktion (lokaler Geltungsbereich).
Wenn wir Änderungen innerhalb der vornehmen bar()
Funktion erscheinen die Änderungen außerhalb des lokalen Geltungsbereichs, d.h. foo()
.