Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Pythons global-Schlüsselwort meistern: Wie & wann man es verwendet

Pythons global-Schlüsselwort meistern: Wie & wann man es verwendet

Dieser Leitfaden erklärt das Python global-Schlüsselwort, seine Regeln, praktische Anwendungsfälle und Best Practices für die Verwaltung globaler Variablen über Module hinweg.


Was ist das global-Schlüsselwort?

In Python erlaubt das global-Schlüsselwort, zu deklarieren, dass eine Variable innerhalb einer Funktion auf eine Modul-Variable verweist, anstatt eine neue lokale zu erstellen. Dies ist essenziell, wenn eine Funktion eine Variable lesen oder modifizieren muss, die außerhalb ihres eigenen Gültigkeitsbereichs existiert.


Regeln für die Verwendung von global


Praktische Verwendung von global

Nachfolgend sind illustrative Beispiele, die sowohl Fallstricke als auch den korrekten Ansatz demonstrieren.

Beispiel 1: Zugriff auf eine globale Variable aus einer Funktion

c = 1 # globale Variable
def add():
    print(c)
add()

Ausgabe:

1

Hier wird c erfolgreich gelesen, da keine Zuweisung innerhalb von add() erfolgt.

Beispiel 2: Versuch, eine globale Variable ohne global zu modifizieren

c = 1 # globale Variable
def add():
    c = c + 2 # versucht c zu modifizieren
    print(c)
add()

Ausgabe:

UnboundLocalError: local variable 'c' referenced before assignment

Der Fehler tritt auf, weil Python c als neue lokale Variable behandelt, die vor Zuweisung referenziert wird.

Beispiel 3: Globale Variable mit global modifizieren

c = 0 # globale Variable
def add():
    global c
    c = c + 2
    print("Inside add():", c)
add()
print("In main:", c)

Ausgabe:

Inside add(): 2
In main: 2

Durch Deklaration von global c aktualisiert die Funktion die Modul-Variable c, und die Änderung ist außerhalb der Funktion sichtbar.


Globale Variablen über Python-Module teilen

Für größere Anwendungen ist es üblich, Konfiguration in einem dedizierten Modul zu zentralisieren, z. B. config.py. Andere Module können diese Werte importieren und modifizieren, was konsistenten State über das Programm ermöglicht.

Beispiel 4: Cross-Module Globale Variablen

Erstellen Sie config.py:

a = 0
b = "empty"

Erstellen Sie update.py zum Modifizieren der Globals:

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

Erstellen Sie main.py zur Verifikation der Änderungen:

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

Ausgabe:

10
alphabet

Dieses Pattern hält geteilten State an einem Ort, während kontrollierte Updates aus anderen Modulen ermöglicht werden.


Verwendung von global in verschachtelten Funktionen

Wenn eine verschachtelte Funktion eine Variable modifizieren muss, die lokal zu einer äußeren Funktion ist, kann das global-Schlüsselwort dennoch angewendet werden, um eine echte globale Variable zu erstellen.

Beispiel 5: Globale Variable 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)

Ausgabe:

Before calling bar: 20
Calling bar now
After calling bar: 20
x in main: 25

Innerhalb von foo() bleibt x eine lokale Variable. Die verschachtelte bar() deklariert x als global, sodass die Zuweisung die Modul-Variable x betrifft und nach Beendigung von foo() sichtbar ist.


Während global nützlich sein kann, ist es generell besser, Funktionen zu entwerfen, die neue Werte zurückgeben, anstatt globalen State zu mutieren. Dies fördert klareren Code und einfacheres Testen. Für detaillierte Sprachregeln siehe die offizielle Python-Dokumentation zum global Statement.

Python

  1. Python-Datentypen meistern: Praxisleitfaden
  2. Python-Operatoren meistern: Umfassender Leitfaden
  3. Python pass-Statement meistern: Praxisleitfaden
  4. Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
  5. Python Global, Local & Nonlocal Variablen verstehen
  6. Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken
  7. Python Iteratoren meistern: Funktionsweise und Erstellung eigener Iteratoren
  8. Python Closures erklärt: Wie verschachtelte Funktionen Variablen erfassen
  9. Python datetime meistern: Praktischer Leitfaden zu Datumsangaben, Zeiten und Zeitzonen
  10. Python Überblick: Hochlevel, lesbar, interaktiv & objektorientiert