我想使用 getExecutionTime()方法测量Python方法 sayHello()的执行时间。它们都在一个模块中, getExecutionTime() -method应该可以从外部调用。
代码如下所示:
def getExecutionTime():
t = timeit.Timer("sayHello", "from __main__ import sayHello")
return t.timeit(2)
def sayHello():
print("Hello")
我一直得到一个ImportError说:“无法在文件中导入名称sayHello ...”
我将范围参数("from __main__ import sayHello"
)添加到Timer构造函数中,以使 sayHello()方法在时间范围内可用。
注意:我不想在此方法的主要部分调用getExecutionTime(),我想从其他地方调用该方法。
有人可以帮忙吗? 感谢。
答案 0 :(得分:2)
我有一个字面意思的文件:
import timeit
def getExecutionTime():
t = timeit.Timer("sayHello()", "from __main__ import sayHello")
return t.timeit(2)
def sayHello():
print("Hello")
print(getExecutionTime())
运行时,它会打印Hello
两次,然后执行时间。 (另请注意sayHello()
设置中sayHello
而不是Timer
。
您是否在IDE中运行此操作?从命令行& IDLE它适用于我,在Python 2.7& 3.2。
答案 1 :(得分:-2)
代码,因为它是编写的,并且导入了timeit,对我来说也很好,没有ImportError ......