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'
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:
Beispiel:
Betrachten Sie den folgenden Code:
def bob(): me = "locally defined" # Defined only in local context print(me)
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
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!