我想使用方法getExecutionTime()测量Python方法sayHello()的执行时间。它们都在模块中,并且应该可以从外部调用getExecutionTime()方法。
代码如下:
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()方法在timeit范围内可用。注意:我不想在此方法的主要部分中调用getExecutionTime(),我想从其他地方调用该方法。
有人可以帮忙吗?
谢谢。
最佳答案
我有一个字面上是这样的文件:
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中运行此程序吗?在Python 2.7和3.2下,都可以从命令行和IDLE使用它。
关于python - 在timeit()中从同一模块调用方法时导入错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12404487/