Python装饰器实现函数运行时间的计算需要遵循下面的步骤:
1. 编写计时器装饰器函数
我们可以编写一个计时器装饰器函数,用来计算函数运行所花费的时间。
import time
def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"函数 {func.__name__} 运行时间为:{end_time - start_time:.3f} 秒")
return result
return wrapper
这里的 timer
函数是一个装饰器函数,它接受一个函数作为参数,返回一个新的函数 wrapper
(记得 wrapper
需要返回被修饰函数的执行结果)。
2. 应用计时器装饰器函数
我们可以在需要计时的函数之前加上装饰器:
@timer
def foo():
time.sleep(1)
这样,当我们调用 foo
函数时,计时器装饰器会自动记录 foo
函数的执行时间,并将结果打印出来。
示例1
import time
def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"函数 {func.__name__} 运行时间为:{end_time - start_time:.3f} 秒")
return result
return wrapper
@timer
def foo():
time.sleep(1)
foo()
上面的示例中,我们定义了一个 foo
函数,它会休眠 1 秒钟,然后我们将它加上了计时器装饰器,最终输出了函数的执行时间。
示例2
import time
def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"函数 {func.__name__} 运行时间为:{end_time - start_time:.3f} 秒")
return result
return wrapper
@timer
def bar(a, b):
time.sleep(2)
return a + b
result = bar(1, 2)
print(result)
上面的示例中,我们定义了一个 bar
函数,它接受两个参数,会休眠 2 秒钟,然后返回两个参数的和。我们将它加上了计时器装饰器,并输出了函数的执行时间和返回结果。
这就是 Python装饰器实现函数运行时间计算的完整攻略,通过编写计时器装饰器函数,我们可以实现易于维护的计时代码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python装饰器实现函数运行时间的计算 - Python技术站