Python时间问题
我正在尝试使用timeit模块,但我不知道如何使用。 我有一个主要问题:Python时间问题,python,timeit,Python,Timeit,我正在尝试使用timeit模块,但我不知道如何使用。 我有一个主要问题: from Foo import Foo if __name__ == '__main__': ... foo = Foo(arg1, arg2) t = Timer("foo.runAlgorithm()") print t.timeit(2) 我的类Foo有一个名为runAlgorithm()的方法 错误是: NameError:未定义全局名称“foo” 我做错了什么? 我可以从类方法中抽出时间吗?
from Foo import Foo
if __name__ == '__main__':
...
foo = Foo(arg1, arg2)
t = Timer("foo.runAlgorithm()")
print t.timeit(2)
我的类Foo有一个名为runAlgorithm()的方法
错误是:
NameError:未定义全局名称“foo”
我做错了什么?
我可以从类方法中抽出时间吗?如图所示,您需要传递设置
语句:
t = Timer("foo.runAlgorithm()", 'from __main__ import foo')
您无需使用设置timeit环境所需的方法,只需传递该方法(或任何可调用的方法): 从文件中: 在版本2.6中更改:stmt和setup参数现在也可以接受无参数可调用的对象 如果需要传递一些参数,可以使用函数currying with,例如:
class C:
def printargs(self, a, b):
print a, b
from functools import partial
foo = C()
t = Timer(partial(foo.printargs, 1, 2))
我认为不带参数需要高亮显示。如果需要传递参数,只需使用一个小包装器函数即可。@SilentGhost:已编辑以包含带参数的示例。
class C:
def printargs(self, a, b):
print a, b
from functools import partial
foo = C()
t = Timer(partial(foo.printargs, 1, 2))