用timeit计算执行时间时获取“ TypeError:'模块'不可调用”

时间:2019-10-02 08:41:18

标签: python timeit

我试图计算我的python代码的时间,但是我不断得到:

  

TypeError-'模块'不可调用

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

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

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

2 个答案:

答案 0 :(得分:4)

您也许将文件命名为 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

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

您可以使用import检查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
$

答案 1 :(得分:1)

走吧!

import time

origin_time = time.time()与此相关,您将从纪元获取当前时间(以秒为单位)

只要想知道花费的时间,只需写:

current_spent_time = time.time() - origin_time,它将再次获得当前时间(以秒为单位),并减去之前的origin_time(即您的代码开始运行的时间)。

希望这会有所帮助!!