【发布时间】:2013-02-28 04:55:00
【问题描述】:
我不明白为什么下面的代码会给出不同的结果:
from datetime import datetime
def foo():
return {datetime.now() : True}
a = {}
a.update(foo())
a.update(foo())
a.update(foo())
还有:
a = {}
for i in xrange(3):
a.update(foo())
前者a 以三个元素结束,而后者a 以一个元素结束(来自上一次迭代)。
【问题讨论】:
-
我无法重现——也许我的电脑比你的慢 ;-)
-
您确定
datetime.now()在两种情况下的所有调用中都返回不同的值吗? -
在我的机器上我得到三个
-
在
foo中添加time.sleep(1),你会看到会发生什么。
标签: python for-loop dictionary