Python 在timeit()中从同一模块调用方法时发生导入错误
我想使用getExecutionTime()方法测量Python方法sayHello()的执行时间。它们都在模块中,getExecutionTime()方法应该可以从外部调用 代码如下所示: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") 我不断收
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
方法的执行时间。