Python Global Keyword (mit Beispielen)

In diesem Artikel erfahren Sie mehr über das globale Schlüsselwort, die globale Variable und den Zeitpunkt der Verwendung globaler Schlüsselwörter.

Stellen Sie vor dem Lesen dieses Artikels sicher, dass Sie einige Grundlagen zu Python Global, Local und Nonlocal Variables haben.

Was ist das globale Schlüsselwort?

In Python globalkönnen Sie mit dem Schlüsselwort die Variable außerhalb des aktuellen Bereichs ä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 globalSchlüsselwörter in Python sind:

  • Wenn wir eine Variable innerhalb einer Funktion erstellen, ist diese standardmäßig lokal.
  • Wenn wir eine Variable außerhalb einer Funktion definieren, ist sie standardmäßig global. Sie müssen kein globalSchlüsselwort verwenden.
  • Wir verwenden das globalSchlüsselwort, um eine globale Variable innerhalb einer Funktion zu lesen und zu schreiben.
  • Die Verwendung eines globalSchlüsselworts außerhalb einer Funktion hat keine Auswirkung.

Verwendung des globalen Schlüsselworts

Nehmen wir ein Beispiel.

Beispiel 1: Zugriff auf globale Variablen aus einer Funktion heraus

 c = 1 # global variable def add(): print(c) add()

Wenn wir das obige Programm ausführen, lautet die Ausgabe:

 1

Es kann jedoch vorkommen, dass 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: Lokale Variable 'c', auf die vor der Zuweisung verwiesen wird

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 besteht darin, das globalSchlüsselwort zu verwenden.

Beispiel 3: Ändern einer globalen Variablen aus einer Funktion heraus mit global

 c = 0 # global variable def add(): global c c = c + 2 # increment by 2 print("Inside add():", c) add() print("In main:", c)

Wenn wir das obige Programm ausführen, lautet die Ausgabe:

 Inside add (): 2 In main: 2

Im obigen Programm definieren wir c als globales Schlüsselwort innerhalb der add()Funktion.

Dann erhöhen wir die Variable c um 1, dh c = c + 2. Danach rufen wir die add()Funktion auf. Schließlich drucken wir die globale Variable c.

Wie wir sehen können, hat sich auch die globale Variable außerhalb der Funktion geändert c = 2.

Globale Variablen über Python-Module hinweg

In Python erstellen wir ein einzelnes Modul config.py, um globale Variablen zu speichern und Informationen zwischen Python-Modulen innerhalb desselben Programms auszutauschen.

So können wir globale Variablen für die Python-Module freigeben.

Beispiel 4: Teilen Sie eine globale Variable über Python-Module hinweg

Erstellen Sie eine config.pyDatei, um globale Variablen zu speichern

 a = 0 b = "empty"

Erstellen Sie eine update.pyDatei, um globale Variablen zu ändern

 import config config.a = 10 config.b = "alphabet"

Erstellen Sie eine main.pyDatei, um Wertänderungen zu testen

 import config import update print(config.a) print(config.b)

Wenn wir die main.pyDatei ausführen , wird die Ausgabe sein

 10 Alphabet

In der oben haben wir drei Dateien erstellt: config.py, update.py, und main.py.

Das Modul config.pyspeichert globale Variablen von a und b. In der update.pyDatei importieren wir das config.pyModul und ändern die Werte von a und b. In ähnlicher Weise main.pyimportieren wir in der Datei sowohl das Modul config.pyals auch das update.pyModul. Schließlich drucken und testen wir die Werte globaler Variablen, unabhängig davon, ob sie geändert wurden oder nicht.

Global in verschachtelten Funktionen

So können Sie eine globale Variable in verschachtelten Funktionen verwenden.

Beispiel 5: Verwenden einer globalen Variablen in einer verschachtelten Funktion

 def foo(): x = 20 def bar(): global x x = 25 print("Before calling bar: ", x) print("Calling bar now") bar() print("After calling bar: ", x) foo() print("x in main: ", x)

Die Ausgabe ist:

 Vor dem Anrufen der Leiste: 20 Jetzt Anrufen der Leiste Nach dem Anrufen der Leiste: 20 x in main: 25

Im obigen Programm haben wir eine globale Variable innerhalb der verschachtelten Funktion deklariert bar(). Innerhalb der foo()Funktion hat x keine Auswirkung auf das globale Schlüsselwort.

Vor und nach dem Aufruf bar()nimmt die Variable x den Wert der lokalen Variablen an, d x = 20. H. Außerhalb der foo()Funktion nimmt die Variable x den in der bar()Funktion definierten Wert an , d x = 25. H. Dies liegt daran, dass wir das globalSchlüsselwort in x verwendet haben, um eine globale Variable innerhalb der bar()Funktion (lokaler Bereich) zu erstellen .

Wenn wir Änderungen innerhalb der bar()Funktion vornehmen, werden die Änderungen außerhalb des lokalen Bereichs angezeigt, d foo(). H.

Interessante Beiträge...