2

我想使用方法getExecutionTime()测量 Python 方法sayHello()的执行时间。它们都在一个模块中,并且getExecutionTime() -方法应该可以从外部调用。

代码如下所示:

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

def sayHello():
    print("Hello")

我不断收到 ImportError 说:“无法在文件中导入名称 sayHello ...”

我在 Timer 构造函数中添加了范围参数 ( "from __main__ import sayHello"),以使sayHello()方法在 timeit 范围内可用。

注意:我不想在此方法的主要部分调用 getExecutionTime(),我想从其他地方调用该方法。

任何人都可以帮忙吗?谢谢。

4

2 回答 2

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()不是sayHelloTimer设置中)。

您是在 IDE 中运行它吗?在 Python 2.7 和 3.2 下,它适用于我的命令行和 IDLE。

于 2012-09-13T10:53:55.553 回答
-2

编写的代码并导入了 timeit,对我来说也可以正常工作,没有 ImportError ...

于 2017-09-25T07:47:23.877 回答