1
我使用的是可變的數據結構,發現做d[mods_mutable()] = mods_mutable()]
不具有相同的行爲字典經營秩序
key = mods_mutable()
d[key] = mods_mutable()
很容易被猜到發生了什麼。短期旅行到一個臨時文件和一個小的測試證實:
x = 0
def f():
global x
x += 1
return x
d = dict()
d[f()] = f()
print d
運行它,我們得到{2: 1}
。很明顯,關鍵的價值是第二次評估哪種類型是有意義的(如果我們得到一個異常或獲得價值,那麼關鍵是什麼?)。
此行爲是否記錄在案?我在官方文檔中找不到任何內容,谷歌Google也沒有爲我的問題做任何事情。我們是否保證這個訂單,無論實施和版本?是否還有更多這樣的細節需要注意?
右手側總是首先評估。 – Volatility 2013-03-17 00:56:50
我不敢相信我沒有想過這個...... – 2013-03-17 00:58:23