Python装饰器可以干什么
时间: 2023-12-14 17:34:27 浏览: 72
Python装饰器可以在不改变原函数代码的情况下,为函数添加额外的功能。装饰器本质上是一个Python函数,它可以接收一个函数作为参数,并返回一个新的函数。通过这种方式,我们可以在不修改原函数的情况下,为函数添加新的功能,比如日志记录、性能测试、输入验证等等。下面是一个简单的装饰器示例,用于记录函数的执行时间:
```python
import time
def time_it(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"函数 {func.__name__} 执行时间为:{end - start} 秒")
return result
return wrapper
@time_it
def my_func():
time.sleep(1)
my_func() # 输出:函数 my_func 执行时间为:1.000000238418579秒
```
在上面的示例中,我们定义了一个装饰器 `time_it`,它接收一个函数作为参数,并返回一个新的函数 `wrapper`。在 `wrapper` 函数中,我们记录了函数执行的开始时间和结束时间,并计算出函数的执行时间。然后,我们将这个新的函数作为装饰器应用到了 `my_func` 函数上,这样就可以记录 `my_func` 函数的执行时间了。
阅读全文