python挂载多个装饰器
时间: 2024-09-14 17:13:00 浏览: 35
在Python中,装饰器是一种设计模式,它允许你在不修改原有函数定义的情况下,增加函数的行为。当需要挂载多个装饰器时,你可以按照从内到外的顺序,将它们一个个应用到函数定义上。
例如,假设我们有两个装饰器:`decorator_a` 和 `decorator_b`。要将它们应用到同一个函数 `my_function` 上,你可以这样做:
```python
def decorator_a(func):
def wrapper():
print("装饰器A开始执行")
func()
print("装饰器A结束执行")
return wrapper
def decorator_b(func):
def wrapper():
print("装饰器B开始执行")
func()
print("装饰器B结束执行")
return wrapper
@decorator_a
@decorator_b
def my_function():
print("这是原始函数")
# 调用my_function实际上是调用decorator_a(decorator_b(my_function))
my_function()
```
当执行 `my_function()` 时,实际上会依次调用 `decorator_b` 和 `decorator_a`。输出将会是:
```
装饰器B开始执行
装饰器A开始执行
这是原始函数
装饰器A结束执行
装饰器B结束执行
```
这说明,最底层的装饰器(离函数最近的那个)会先执行,然后是外层的装饰器。
阅读全文