比方說,我有在Python這樣的情況:將按照寫入的順序對Python字典進行評估嗎?
_avg = {'total':0.0, 'count':0} # HACK: side-effects stored here
def procedure(n):
_avg['count'] += 1
_avg['total'] += n
return n
def get_average():
return _avg['total']/_avg['count']
my_dict = {
'key0': procedure(0),
'key2': procedure(2),
'key1': get_average()
}
assert(my_dict['key1'] == 1.0)
我知道,my_dict.keys()
順序是不確定的,但我不知道是否是通過文字這樣的初始化保證以特定順序發生。 my_dict['key1']
的值是否總是爲1.0
所聲稱的值?
良好的通話。儘管如果這對你的代碼真的很重要,你應該單元測試一下,特別是爲了便攜性的原因。 – Marcin 2015-01-26 18:51:29
除了http://bugs.python.org/issue11205,它表明在該規則的Python實現中存在一個錯誤。 – 2015-01-26 18:55:34