Chcę zmierzyć czas wykonania metody Pythona SayHello () za pomocą metody GetExecutionime () . Są zarówno w module, jak i GetExecutionime () -metod powinny być wywołane z zewnątrz.

Kod wygląda następująco:

def getExecutionTime():
    t = timeit.Timer("sayHello", "from __main__ import sayHello")
    return t.timeit(2)

def sayHello():
    print("Hello")

Utrzymuję importerror mówiąc: "Nie można importować Nazwa SayHello w pliku ..."

Dodałem argument zakresu ("from __main__ import sayHello") do konstruktora timera, aby wykonać metodę SayHello () w zakresie czasu.

Uwaga: Nie chcę dzwonić GetExecutiontime () w głównej części tej metody, chcę tej metody skądś indziej.

Czy ktoś może pomóc? Dzięki.

2
brgn 13 wrzesień 2012, 14:44

2 odpowiedzi

Najlepsza odpowiedź

Mam plik, który jest dosłownie:

import timeit

def getExecutionTime():
    t = timeit.Timer("sayHello()", "from __main__ import sayHello")
    return t.timeit(2)

def sayHello():
    print("Hello")

print(getExecutionTime())

Po uruchomieniu drukuje Hello dwa razy, a następnie czas wykonania. (Należy również pamiętać, że jest sayHello(), a nie sayHello w ustawienia Timer).

Czy biegasz z tego powodu? Z wiersza poleceń i ITLE działa dla mnie, w obu Python 2.7 i 3.2.

2
Matthew Trevor 13 wrzesień 2012, 10:53

Kod, jak jest napisany, a po imprezie, działa również w porządku dla mnie, a nie importerror ...

-2
Sébastien Wieckowski 25 wrzesień 2017, 07:47