为什么Python的timeit()无休止地执行?

sra*_*mij 3 python cpython timeit

当尝试使用Python内置模块'timeit'时,如下所示:

timeit.Timer('print "hi"').timeit()
Run Code Online (Sandbox Code Playgroud)

它打印多行; 这是为什么?它不断印刷"喜":

hi
hi
hi
hi
...
Run Code Online (Sandbox Code Playgroud)

Dav*_*son 10

timeit旨在测试极短的代码片段,因此它会多次运行代码并对其进行平均.默认情况下,它运行1000000次.

您可以通过运行它来更改此设置,如下所示:

timeit.Timer('print "hi"').timeit(number=1)
Run Code Online (Sandbox Code Playgroud)


sbe*_*rry 5

如果查看文档,您将看到该语句将默认执行1000000次.

如果你只想运行它2次,你可以将2传递给类的timeit()方法Timer.

timeit.Timer('print "hi"').timeit(2)
Run Code Online (Sandbox Code Playgroud)