Python 对函数计时并获取返回值
我知道我可以用这个Python 对函数计时并获取返回值,python,performance,time,Python,Performance,Time,我知道我可以用这个 from timeit import timeit test = lambda f: timeit(lambda:f(100), number=1) t1 = test(hello) 计算hello函数在参数100下运行的时间。但是假设我的hello函数返回字符串'world',我想存储返回的值,并计算执行所需的时间 可以这样做吗?如果您只想为特定函数的特定调用计时,可以执行以下操作。这将为您提供一次跑步的准确时间。然而,您可能只想使用timeit或profile来更准确地
from timeit import timeit
test = lambda f: timeit(lambda:f(100), number=1)
t1 = test(hello)
计算hello
函数在参数100
下运行的时间。但是假设我的hello
函数返回字符串'world'
,我想存储返回的值,并计算执行所需的时间
可以这样做吗?如果您只想为特定函数的特定调用计时,可以执行以下操作。这将为您提供一次跑步的准确时间。然而,您可能只想使用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)
如果只想对特定函数的特定调用计时,可以执行以下操作。这将为您提供一次跑步的准确时间。然而,您可能只想使用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)
你想在这里实现什么?如果您正在设置
number=1
,timeit
可能不是适合您的工具。@jornsharpe我想计算一下运行hello(100)
一次所需的时间。这个方法是我在帖子上得到的最好答案。你能建议你还可以用哪种方法吗?我不明白否决票…你会怎么处理返回值?如果你只是想确保它是你所期望的,请考虑<代码> AsStudio。@ Jon RaSpe,我的讲师要求我们在实际运行过程中对所有功能进行计时。这不仅仅是为了检查性能。我需要对我的函数计时,并将它的结果用作程序中后续函数的参数。你可能想要这样的结果--投票结束你的问题,作为一个重复,你在这里想要实现什么?如果您正在设置number=1
,timeit
可能不是适合您的工具。@jornsharpe我想计算一下运行hello(100)
一次所需的时间。这个方法是我在帖子上得到的最好答案。你能建议你还可以用哪种方法吗?我不明白否决票…你会怎么处理返回值?如果你只是想确保它是你所期望的,请考虑<代码> AsStudio。@ Jon RaSpe,我的讲师要求我们在实际运行过程中对所有功能进行计时。这不仅仅是为了检查性能。我需要对我的函数计时,并将它的结果用作程序中后续函数的参数。您可能需要类似这样的内容--投票以重复方式结束您的问题