Heim > Backend-Entwicklung > Python-Tutorial > Wann kann ich in Python auf globale Variablen zugreifen, ohne das Schlüsselwort „global' zu verwenden?

Wann kann ich in Python auf globale Variablen zugreifen, ohne das Schlüsselwort „global' zu verwenden?

DDD
Freigeben: 2024-12-25 03:32:20
Original
118 Leute haben es durchsucht

When Can I Access Global Variables in Python Without Using the `global` Keyword?

Globaler Variablenzugriff ohne das Schlüsselwort „global“ in Python

In Python erfordert der Zugriff auf eine globale Variable innerhalb einer Funktion normalerweise die Verwendung von das Schlüsselwort „global“. Es gibt jedoch Fälle, in denen auf eine globale Variable zugegriffen werden kann, ohne sie explizit als solche zu deklarieren.

Das Problem:

Warum ist es überhaupt möglich, auf eine globale Variable zuzugreifen? ohne das Schlüsselwort „global“ zu verwenden, wie im folgenden Codeausschnitt gezeigt:

sub = ['0', '0', '0', '0']

def getJoin():
    return '.'.join(sub)

print(getJoin())  # Output: '0.0.0.0'
Nach dem Login kopieren

The Erläuterung:

Das Schlüsselwort „global“ wird hauptsächlich zum Ändern oder Erstellen globaler Variablen in einem lokalen Kontext verwendet. In bestimmten Fällen kann jedoch aus folgenden Gründen auf eine globale Variable zugegriffen werden, ohne sie explizit als global zu deklarieren:

  • Variablenschatten:Wenn eine Variable mit demselben Namen wie Wenn eine globale Variable innerhalb eines lokalen Bereichs definiert wird, hat die lokale Variable Vorrang. Dies wird als Variablenschatten bezeichnet.
  • Namespace-Regeln: Python hat für jede Funktion einen separaten Namespace. Wenn jedoch innerhalb einer Funktion auf eine Variable zugegriffen wird, ohne dass diese explizit in dieser Funktion definiert ist, sucht der Interpreter im globalen Namensraum danach. Wenn die Variable im globalen Namespace gefunden wird, wird sie zurückgegeben.

Beispiel:

Betrachten Sie den folgenden Code:

def bob():
    me = "locally defined"  # Defined only in local context
    print(me)
Nach dem Login kopieren

Beim Aufruf der Funktion bob() wird „lokal definiert“ ausgegeben, da in der Funktion eine lokale Variable mit dem Namen „me“ definiert wurde. Wenn wir jedoch versuchen, außerhalb der Funktion ohne das Schlüsselwort „global“ auf mich zuzugreifen, führt dies zu einem „UnboundLocalError“.

print(me)  # Asking for a global variable
Nach dem Login kopieren

Schlussfolgerung:

Während das Schlüsselwort „global“ im Allgemeinen zum Ändern oder Erstellen globaler Variablen empfohlen wird, ist es manchmal möglich, auf globale Variablen zuzugreifen, ohne sie explizit als solche zu deklarieren. Dieses Verhalten wird durch Variablenschatten und den Suchmechanismus innerhalb der Namespaces von Python verursacht. Es ist jedoch wichtig zu beachten, dass die Verwendung des impliziten Zugriffs auf globale Variablen zu Fehlern und Verwirrung führen kann. Daher empfiehlt es sich, das Schlüsselwort „global“ bei Bedarf explizit zu verwenden.

Das obige ist der detaillierte Inhalt vonWann kann ich in Python auf globale Variablen zugreifen, ohne das Schlüsselwort „global' zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage