计算函数并获取返回值

时间:2014-10-12 17:11:28

标签: python performance time

我知道我可以使用这个

from timeit import timeit
test = lambda f: timeit(lambda:f(100), number=1)
t1 = test(hello)

计算hello函数与参数100一起运行需要多长时间。但是,让我们说我的hello函数返回字符串'world',我想存储返回值也需要执行它所花费的时间。

能做到吗?

1 个答案:

答案 0 :(得分:4)

如果您只想对特定功能的特定呼叫进行计时,则可以执行以下操作。这将为您提供一次运行的准确时间。但是,您可能只想使用timeit或profile来更准确地了解您的程序正在执行的操作。这些工具聚合多次运行以获得更准确的平均案例结果。

创建一个函数,它接受一个函数来调用,记录时间,然后运行函数并返回值和时间增量。

import time

def timed(func, *args, **kwargs):
    start = time.time()
    out = func(*args, **kwargs)
    return out, time.time() - start

def my_func(value):
    time.sleep(value)
    return value

print(timed(my_func(5)))  # (5, 5.0050437450408936)
相关问题