python 多个装饰器的执行顺序
2019-05-12 22:35
399 查看
前提,装饰器的执行顺序是自下而上,采用的是就近原则。所以说先执行的是最近的一个装饰器,所以一般我们web登陆验证都放在最近的,而我会把捕捉异常放在最外面。
两个例子带你理解
from functools import wraps def a(func): print('11111') @wraps(func) def wrapper(*args,**kwargs): print('a装饰器被执行') func(*args,**kwargs) print('a装饰器执行结束') return wrapper def b(func): print('22222') @wraps(func) def wrapper(*args,**kwargs): print('b装饰器被执行') func(*args,**kwargs) print('b装饰器执行结束') return wrapper @b @a def b(): print('ss') b()
我们看结果可以发现,函数自上而下执行,装饰器回先被执行所以我们看一看到111111和22222被打印,其次从输出的字符串我们也可以清楚的看到a装饰器是在函数执行第一个会装饰的,其次是b。我们可以根据自己的需求选择。
相关文章推荐
- python中多个装饰器的执行顺序详解
- Python多个装饰器的执行顺序
- 多个装饰器的执行顺序
- autofac 一个接口多个实现的顺序执行
- Python异常捕捉try except else finally有return时执行顺序探究
- python多进程并行执行和顺序执行的时间测试
- Python 装饰器执行顺序迷思
- python try except else finally 执行顺序详细分析
- Python-try except else finally有return时执行顺序探究
- python try except else finally 执行顺序详细分析
- python装饰器执行顺序
- 详解Python 装饰器执行顺序迷思
- 装饰器--对同一个函数进行两次进行装饰,函数执行顺序
- 使用Job的SQL语句为多个Job调度执行顺序
- Python: 使用装饰器“@”取得函数执行时间
- Python多重继承的方法解析执行顺序实例分析
- 探究多个装饰器执行顺序
- python中 try、except、finally 的执行顺序
- python中 try、except、finally 的执行顺序