介绍一下python装饰器。
时间: 2024-06-16 15:03:48 浏览: 62
Python装饰器是一种特殊的语法,它允许我们在不修改原始函数代码的情况下,对函数进行额外的功能扩展。装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。
装饰器可以用于实现以下功能:
1. 添加日志记录:可以在函数执行前后打印日志信息,用于调试和追踪函数的执行过程。
2. 计时功能:可以统计函数的执行时间,用于性能分析和优化。
3. 权限验证:可以在函数执行前进行用户权限验证,确保只有具备相应权限的用户才能执行该函数。
4. 缓存功能:可以将函数的计算结果缓存起来,避免重复计算,提高程序的执行效率。
下面是一个示例,演示如何使用装饰器来添加日志记录功能:
```python
def log_decorator(func):
def wrapper(*args, **kwargs):
print(f"调用函数 {func.__name__}")
result = func(*args, **kwargs)
print(f"函数 {func.__name__} 执行完毕")
return result
return wrapper
@log_decorator
def add(a, b):
return a + b
result = add(3, 5)
print(result)
```
在上面的示例中,`log_decorator` 是一个装饰器函数,它接受一个函数作为参数,并返回一个新的函数 `wrapper`。`wrapper` 函数在执行被装饰的函数之前和之后打印日志信息。通过在 `add` 函数上使用 `@log_decorator`,我们实现了对 `add` 函数的日志记录功能。
阅读全文