Heim >Backend-Entwicklung >Python-Tutorial >Wann ist das Schlüsselwort „global' in Python für den Zugriff auf globale Variablen erforderlich?
Verstehen, dass das Schlüsselwort „global“ für den globalen Variablenzugriff unnötig ist
In Python sind Funktionsnamensräume vom globalen Namensraum getrennt. Dies erfordert normalerweise die Verwendung des Schlüsselworts „global“, um auf globale Variablen innerhalb von Funktionen zuzugreifen. Es gibt jedoch Ausnahmen von dieser Regel.
Betrachten Sie das folgende Beispiel:
sub = ['0', '0', '0', '0'] def getJoin(): return '.'.join(sub) print(getJoin())
Hier definieren wir eine globale Liste „sub“ und eine Funktion „getJoin“, die sie ohne verwendet Schlüsselwort „global“. Überraschenderweise liefert die Funktion immer noch das richtige Ergebnis.
Der Grund dafür ist die dynamische Natur von Python. Wenn innerhalb einer Funktion auf eine Variable verwiesen wird, prüft Python zunächst den lokalen Gültigkeitsbereich der Funktion. Wenn die Variable dort nicht gefunden wird, durchsucht es den globalen Namensraum. Dieser Suchmechanismus wird als LRU-Reihenfolge (Least Recent Used) bezeichnet.
Daher findet Python in unserem Beispiel, wenn die Funktion „getJoin“ auf „sub“ verweist, diese im globalen Namespace, obwohl die Funktion „global ' Schlüsselwort wurde nicht verwendet.
Einschränkungen:
Während das Schlüsselwort „global“ verwendet wird ist nicht immer für den Zugriff auf globale Variablen erforderlich, aber für deren Änderung unerlässlich. Wenn Sie versuchen, einer globalen Variablen einen neuen Wert zuzuweisen, ohne „global“ zu verwenden, wird innerhalb der Funktion eine neue lokale Variable erstellt.
Best Practices:
Aus Gründen der Übersichtlichkeit und zur Vermeidung potenzieller Fehler wird im Allgemeinen empfohlen, das Schlüsselwort „global“ zu verwenden, wenn auf globale Variablen innerhalb von Funktionen zugegriffen oder diese geändert werden.
Das obige ist der detaillierte Inhalt vonWann ist das Schlüsselwort „global' in Python für den Zugriff auf globale Variablen erforderlich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!