NameError: имя таймера не определено

У меня есть небольшая программа на Python, написанная для Python 2.7.3:

import time
def fun():
    print('Hi')
for i in range(3):
    Timer(i, fun).start()

Когда я запускаю его, я получаю сообщение об ошибке:

NameError: name 'Timer' is not defined

Как узнать, какой модуль поддерживает эту функциональность?


person Atovange    schedule 13.06.2014    source источник
comment
Вы ищете timeit модуль, не так ли?   -  person vaultah    schedule 13.06.2014
comment
Попробуйте from timeit import Timer.   -  person huu    schedule 13.06.2014
comment
Я отредактировал ваш вопрос, чтобы вывести вопрос, основанный на мнении, о Python 2 и 3.   -  person Andy♦    schedule 13.06.2014


Ответы (2)


Timer находится в модуле timeit, а не time. И чтобы назвать это так, как вы хотите, вам нужно from timeit import Timer, а не только import timeit. Если вы просто объявите import timeit, то вам придется везде в коде писать timeit.Timer вместо Timer.

person Reloader    schedule 13.06.2014
comment
Спасибо, но я получаю сообщение об ошибке: ValueError: stmt не является ни строкой, ни вызываемым - person Atovange; 13.06.2014
comment
Вам нужна функция lambda - stackoverflow.com/questions/7523767/ - person Reloader; 13.06.2014
comment
Затем я получаю сообщение об ошибке: AttributeError: объект «Таймер» не имеет атрибута «старт». - person Atovange; 15.06.2014

Вам нужен модуль timeit. Вы можете использовать свой существующий код, заменив текущий импорт:

from timeit import Timer
person Andy♦    schedule 13.06.2014