1
我(試圖)在我的程序中使用globals()
來迭代所有全局變量。這是我去一下吧:通過全局變量遍歷()字典
for k, v in globals().iteritems():
function(k, v)
當然,在這樣做時,我剛剛創建2個全局變量,k
和v
。所以,我得到這個異常:
RuntimeError: dictionary changed size during iteration
而且,這裏是在解決這個問題我的各種不成功的嘗試:
# 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)
我看到的帖子好像this具有相同的異常處理。這是不同的,因爲沒有辦法爲每個字典條目分配一個變量,而沒有爲它創建一個變量名......這樣做會產生錯誤。