Python bietet die Funktion globals()
, um auf ein Wörterbuch aller globalen Variablen zuzugreifen. Warum ist das eine Funktion und keine Variable? Die folgenden Arbeiten:Warum ist globals() eine Funktion in Python?
g = globals()
g["foo"] = "bar"
print foo # Works and outputs "bar"
Was ist der Grund hinter dem Verbergen von Globalen in einer Funktion? Und ist es besser, es nur einmal anzurufen und irgendwo eine Referenz zu speichern oder sollte ich es jedes Mal aufrufen, wenn ich es brauche?
IMHO, das ist kein Duplikat von Reason for globals() in Python?, denn ich frage nicht, warum globals()
existieren, sondern warum es eine Funktion sein muss (anstelle einer Variablen __globals__
).
Sie sollten selten auf Globals außerhalb des Debuggen überhaupt zugreifen müssen, ist dies verwandt http://stackoverflow.com/questions/12693606/reason-for-globals-in-python –
Ich denke, wenn es eine Variable war, dann würde es in dem virtuellen Speicher unter Verwendung nützlichen Speicherplatzes gespeichert werden. Als eine Funktion erlaubt es Ihnen, diese Informationen zu speichern, wenn Sie sie wirklich brauchen (und nicht immer). Ich schätze, dass die Funktion geht und nach den globalen Variablen sucht. Also, wenn du es nicht nennst, wird kein zusätzlicher Speicher verwendet ... Ich bin mir nicht sicher über all das, es ist nur meine Vermutung. – tomasyany
Ich denke, die Beantwortung dieser Frage erfordert spezifische historische Kenntnisse, aber da "Locals" eine Funktion sein muss (es muss das Diktat beim Aufruf aktualisieren), vermute ich, dass 'globals' eine Funktion für Symmetrie mit' local's ist. – user2357112