我正在使用timeit
模块测试Heap的实现,但是我无法在float中打印时间:
def testCustomHeapStartUp(*args):
h = MinHeap(args[0])
return True
if __name__ == "__main__":
for i in range(3):
testList = random.sample(range(100), 100)
print(timeit.Timer("testCustomHeapStartUp(testList)", \
"from __main__ import testCustomHeapStartUp; from __main__ import testList; gc.enabled()"))
这是输出:
<timeit.Timer object at 0x101a58978>
<timeit.Timer object at 0x101a58978>
<timeit.Timer object at 0x101a58978>
答案 0 :(得分:0)
timeit.Timer(...)
仅创建实例,它不会运行并为代码计时。
您需要调用.timeit()
实例上的Timer
函数:
print(timeit.Timer(..., ...).timeit(n))
n
是您希望timeit()
运行代码段的次数。
由于timeit
经常出现,我会将您的代码重构为:
from timeit import Timer
def testCustomHeapStartUp(*args):
h = MinHeap(args[0])
return True
if __name__ == "__main__":
for i in range(3):
testList = random.sample(range(100), 100)
t = Timer(
"testCustomHeapStartUp(testList)",
"from __main__ import testCustomHeapStartUp; from __main__ import testList; gc.enabled()",
)
print(t.timeit())