我正在尝试使用timeit.timeit()
以便找出执行特定代码行需要多少时间。
问题是这一行包含变量,我需要以某种方式导入它们,所以我的问题是如何导入?
为了更清楚,代码看起来像这样:
def func():
var1 = 'aaa'
var2 = 'aab'
t1 = timeit.timeit('var1==var2', 'from __main__ import ___', number = 10**4) # here I'm missing what to put after the import
如果我尝试在中执行此代码__main__
我只是直接导入变量'from __main__ import var1, var2'
此类问题有什么解决办法吗?
timeit.Timer
需要一个可调用的以及要评估的字符串
2.6版本更改:stmt 和 setup 参数现在也可以
获取无需参数即可调用的对象。这将嵌入
在计时器函数中调用它们,然后由
时间()。请注意,此时的时间开销稍大一些
由于额外的函数调用而导致的情况。
(另请参阅source, 寻找elif hasattr(stmt, '__call__'):
).
在变量上创建一个闭包并将其传递给 timeit:
def func():
var1 = 'aaa'
var2 = 'aab'
t1 = timeit.timeit(lambda: var1 == var2, number = 10**4)
或等价:
def func():
var1 = 'aaa'
var2 = 'aab'
def closure():
return var1 == var2
t1 = timeit.timeit(closure, number = 10**4)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)