Python @get_time 装饰器
@get_time 装饰器可以用于计算函数的执行时间。
示例:
import timedef get_time(func):def wrapper(*args, **kwargs):start_time = time.time()func(*args, **kwargs)end_time = time.time()print(f"函数 {func.__name__} 执行时间:{end_time - start_time}")return wrapper@get_time
def foo():time.sleep(1)foo()
输出:
函数 foo 执行时间:1.000012624733444
解释:
get_time
函数是一个装饰器,它接受一个函数作为参数。wrapper
函数是get_time
函数的内部函数,它也是装饰器真正起作用的地方。- 在
wrapper
函数中,首先使用time.time()
函数获取函数执行前的系统时间。 - 然后,调用被装饰的函数
func
。 - 最后,再次使用
time.time()
函数获取函数执行后的系统时间,并计算出函数的执行时间。 - 最终,
wrapper
函数返回被装饰的函数func
。
使用 @get_time 装饰器可以很方便地计算函数的执行时间。
注意:
get_time
装饰器只计算函数的执行时间,不包括函数调用的时间。- 如果函数内部有循环或其他耗时操作,那么函数的执行时间会更长。
以下是一些 @get_time 装饰器的应用场景:
- 性能测试:用于测试函数的执行效率。
- 调试:用于查找函数执行时间过长的原因。
- 优化:用于优化函数的执行效率。