假设我在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)
Run Code Online (Sandbox Code Playgroud)
我知道顺序my_dict.keys()是未定义的,但我想知道的是,通过像这样的文字的初始化是否保证以特定的顺序发生.总值是否my_dict['key1']会被1.0断言?