Получение "TypeError: 'module' not callable" при вычислении времени выполнения с помощью timeit - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь вычислить время моего кода на 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 ]

4 голосов
/ 02 октября 2019

Возможно, вы назвали свой файл как 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 будет импортировать ваш timeit вместо real 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
$
1 голос
/ 02 октября 2019

Поехали!

import time

origin_time = time.time() с этим вы получите текущее время в секундах от эпохи

И всякий раз, когда вы хотите узнатьпотраченное время, просто напишите:

current_spent_time = time.time() - origin_time это снова получит текущее время (в секундах) и вычтет предыдущее значение origin_time, которое было временем начала выполнения вашего кода.

Надеюсь, это поможет!!

...