使用 timeit 计算执行时间时出现“TypeError: 'module' is not callable”

Jon*_*nis 1 python timeit

我正在尝试计算我的 python 代码的时间,但我不断收到:

TypeError - 'module' 不可调用

import timeit
timeit.timeit('"-".join(str(n) for n in range(100))', number=10000)
Run Code Online (Sandbox Code Playgroud)

我正在检查的链接是这个 - https://docs.python.org/2/library/timeit.html

我希望看到代码运行所需的时间。

Gin*_*pin 8

您是否可能将您的文件命名为timeit.py

$ cat timeit.py
import timeit
timeit.timeit('"-".join(str(n) for n in range(100))', number=10000)

$ python3 timeit.py
Traceback (most recent call last):
  File "timeit.py", line 1, in <module>
    import timeit
  File "/path/to/timeit.py", line 2, in <module>
    timeit.timeit('"-".join(str(n) for n in range(100))', number=10000)
TypeError: 'module' object is not callable
Run Code Online (Sandbox Code Playgroud)

您必须将文件重命名为其他名称(例如mytimeit.py)。
否则import将导入您的 timeit而不是真正的 timeit模块。

您可以检查import-ed 模块print(timeit.__file__)
此外,如果您想查看“运行代码所花费的时间”,则必须打印它。

$ mv timeit.py mytimeit.py
$ cat mytimeit.py
import timeit
print(timeit.__file__)
print(timeit.timeit('"-".join(str(n) for n in range(100))', number=10000))

$ python3 mytimeit.py 
/usr/lib/python3.6/timeit.py
0.1469665479962714
Run Code Online (Sandbox Code Playgroud)