【发布时间】:2014-04-19 01:50:17
【问题描述】:
我正在学习 python,当我意识到我无法解释的奇怪行为时,我只是在玩 timeit 模块。
#test.py
import timeit
def dictComp(I):
return {x: x for x in I}
t = timeit.timeit(number=5,
stmt='dictComp(I)',
setup='from test import dictComp\nI=range(1000000)')
print(t)
所以我试图通过调用用户定义的函数来为字典的创建计时。 但是当我使用上面的代码执行此操作时, timeit 似乎执行了两次。 解释器输出两个不同的时间。
但是当我将设置字符串更改为from __main__ 而不是from test 时,timeit 只运行一次(如预期的那样)。
那么这两种说法有区别吗?
模块是主模块的时候写from [module] import [obj]有错吗?
还是和timeit的setup参数有什么关系?
请赐教。干杯。
【问题讨论】: