Python: Unterschied zwischen 'global' und globals (). update (var)

8

Was ist der Unterschied zwischen der Initialisierung einer Variablen als global var oder dem Aufruf von globals().update(var) .

Danke

    
frank 19.10.2009, 17:19
quelle

1 Antwort

17

Wenn Sie sagen

%Vor%

Sie sagen Python, dass var dieselbe Variable ist, die in einem globalen Kontext definiert wurde. Sie würden es auf folgende Weise verwenden:

%Vor%

Ohne die globale Anweisung wäre die Variable innerhalb des Blocks "def f" eine lokale Variable, und das Setzen seines Wertes hätte keine Auswirkung auf die Variable außerhalb des Blocks "def f".

%Vor%

Wenn du globals.update (var) sagst, vermute ich, dass du eigentlich globals () meinst. update (var). Lass es uns auseinander brechen.

globals () gibt ein dict-Objekt zurück. Die Tasten des Diktats sind die Namen von Objekten und die Die Werte von dict sind die Werte des zugehörigen Objekts.

Jedes Diktat hat eine Methode namens "update". Also globals (). Update () ist ein Aufruf dieser Methode. Die Aktualisierungsmethode erwartet mindestens ein Argument, und dieses Argument wird als dict erwartet. Wenn Sie Python sagen

%Vor%

then var sollte besser ein dict sein, und Sie sagen Python, das globals () dict mit dem Inhalt von var dict zu aktualisieren.

Zum Beispiel:

%Vor%     
unutbu 19.10.2009, 17:29
quelle

Tags und Links