在同一对象上两次调用时间?

时间:2018-11-15 07:47:36

标签: python

以下代码为何起作用?在“ t”对象中,timeit已被调用。通过在timeitlst_time上调用d_time是不是在timeit上调用timeit(因为定义了lst_timed_time就“ t”和timeit而言,它们已经在t上被调用了)。在逻辑上允许为什么/如何在自身上调用timeit

import timeit
import random

for i in range(10000,1000001,20000):
         t = timeit.Timer("random.randrange(%d) in x"%i,
            "from __main__ import random,x")
         x = list(range(i))
         lst_time = t.timeit(number=1000)
         x = {j:None for j in range(i)}
         d_time = t.timeit(number=1000)
         print("%d,%10.3f,%10.3f" % (i, lst_time, d_time))

1 个答案:

答案 0 :(得分:0)

这不是问题,我将解释代码的工作原理:

t = timeit.Timer()

timeit.Timer-这将创建一个计时器,以后可以使用

lst_time = t.timeit(number=1000)
#Task 1
d_time = t.timeit(number=1000)
#Task 2

调用t.timeit然后启动计时器