|
发表于 2023-4-30 16:51:19
|
显示全部楼层
本楼为最佳答案
Python中的装饰器是一种特殊的函数,它可以用来修改其他函数的行为,而不需要修改它们的源代码。装饰器函数接受一个函数作为参数,并返回一个新的函数,新的函数包装了原始函数,并提供了额外的功能或修改了原始函数的行为。
以下是一个简单的装饰器示例,它可以用来计算一个函数的执行时间:
- 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} 秒")
- return result
- return wrapper
- @timer
- def my_function():
- time.sleep(2)
- my_function()
复制代码
在这个示例中,我们定义了一个名为 timer 的装饰器函数,它接受一个函数作为参数并返回一个新的函数 wrapper 。在 wrapper 函数中,我们记录了函数执行的起始时间和结束时间,并计算了执行时间。然后,我们打印出函数名和执行时间,并返回原始函数的结果。
我们可以使用 @timer 语法来应用装饰器,它等价于 my_function = timer(my_function) 。当我们调用 my_function() 时,实际上会执行 wrapper 函数,并在执行完原始函数后打印出执行时间。 |
|