为了防止错误 , 在定义装饰器的时候要将其设置为万能装饰器
3、多层装饰器多层的执行循序执行顺序是从里到外 , 最先调用最里层的装饰器 , 最后调用最外层的装饰器 ,
示例代码如下所示:
def maths(func): # 定义第一个装饰器 def wrapper(*args, **kwargs): func(*args, **kwargs) print( 该学生已经学习了数学 ) return wrapperdef Chinese(func): # 定义第而个装饰器 def wrapper(*args, **kwargs): func(*args, **kwargs) print( 该学生已经学习了语文 ) return wrapperdef English(func): # 定义第三个装饰器 def wrapper(*args, **kwargs): func(*args, **kwargs) print( 该学生已经学习了英语 ) return wrapper@maths@Englishdef student1(name): print(f 学生{name}已经完成了 )@English@Chinese@mathsdef student2(name): print(f 学生{name}已经完成了 )# 调用函数student1( 小明 )学生小明已经完成了该学生已经学习了英语该学生已经学习了数学student2( 小花 )学生小花已经完成了该学生已经学习了数学该学生已经学习了语文该学生已经学习了英语
4、带参数的装饰器带参数的装饰器一共分为三层 , 分别如下:
推荐阅读
- 亚马逊电商平台是真的吗,亚马逊代下单靠谱吗
- 使用代理ip为什么要选择高质量正规动态ip
- Javascript中DOM、节点和获取元素的示例分析
- springboot中如何整合log4g2
- Python怎么实现装饰器
- CSS中解决div列高度自适应的3种常用方法分别是什么
- JavaScript中数组Array的常用方法有哪些
- Java中如何把二叉搜索树转换为累加树
- 锅具如何选择