Ich bin (versucht), globals()
in meinem Programm zu verwenden, um durch alle globalen Variablen zu durchlaufen. Dies ist, wie ich es ging:Iterating durch globals() Wörterbuch
for k, v in globals().iteritems():
function(k, v)
Natürlich dabei, ich habe gerade zwei weitere globale Variablen erstellt, k
und v
. So bekomme ich diese Ausnahme:
RuntimeError: dictionary changed size during iteration
Und hier sind meine verschiedenen erfolglosen Versuche, das Problem zu lösen:
# Attempt 1:
g = globals()
for k, v in globals().iteritems():
function(k, v)
# Attempt 2 (this one seems to work, but on closer inspection it duplicates
#the last item in the dictionary, because another reference is created to it):
k = v = None
for k, v in globals().iteritems():
function(k, v)
Ich habe wie this gesehen Beiträge, die mit der gleichen Ausnahme behandeln. Dies ist anders, weil es keine Möglichkeit gibt, jedem Wörterbucheintrag eine Variable zuzuweisen, ohne dafür einen Variablennamen zu erstellen ... und dies führt zu einem Fehler.