使用timeit
,我有一个setup
代码块,它建立了一个填充虚拟数据的数据结构,并且有两个语句(比如test1
和test2
)以不同的方式从这个数据结构中检索数据。
当我这样做的时候
t = timeit.Timer(test1, setup)
print t.timeit(3000)
t = timeit.Timer(test2, setup)
print t.timeit(3000)
我注意到安装程序运行了两次,每次测试一次。是否可以使两个测试共享相同的设置,即只运行一次
setup
代码块,并使用为两个测试创建的完全相同的数据结构? 最佳答案
实现此目的的最简单方法是将设置代码放入模块中,然后使用
"from setup import name_1, name_2, name_3"
作为
setup.py
参数。(请注意,在这种情况下,通配符导入无法正常工作。)如果不想使用单独的模块,请将代码放在主模块中并使用
"from __main__ import name_1, name_2, name_3"
关于python - 使用timeit对不同的测试语句仅运行一次设置代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11654307/