Python 在timeit()中从同一模块调用方法时发生导入错误

Python 在timeit()中从同一模块调用方法时发生导入错误,python,timeit,Python,Timeit,我想使用getExecutionTime()方法测量Python方法sayHello()的执行时间。它们都在模块中,getExecutionTime()方法应该可以从外部调用 代码如下所示: def getExecutionTime(): t = timeit.Timer("sayHello", "from __main__ import sayHello") return t.timeit(2) def sayHello(): print("Hello") 我不断收

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

代码如下所示:

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

def sayHello():
    print("Hello")
我不断收到一条提示:“无法在文件中导入名称sayHello…”

我将范围参数(
)从uuu main_uuuimport sayHello“
)添加到计时器构造函数中,以使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()
而不是
Timer
设置中的
sayHello


您是否在IDE中运行此功能?在命令行&IDLE中,它对我有效,在Python 2.7和3.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()
而不是
Timer
设置中的
sayHello


您是否在IDE中运行此功能?在命令行&IDLE中,它对我有效,在Python 2.7和3.2下都有效。

编写的代码,导入了timeit,对我也有效,不导入…

编写的代码,导入了timeit,对我也有效,无导入错误…

sayHello
getExecutionTime
是函数还是方法?如果它们是类的方法,则应该执行此操作
timeit.timeit(instance.sayHello)
以获取
sayHello
方法的执行时间。
sayHello
getExecutionTime
是函数还是方法?如果它们是类的方法,则应执行以下操作
timeit.timeit(instance.sayHello)
以获取
sayHello
方法的执行时间。