有小伙伴有这样的问题,如果一个类中所有方法都需要装饰,一个方法一个方法的添加装饰,那得多恶心。
这个确实恶心,现在给出一个利用类继承的方式,装饰到所有方法上。
先来介绍一个特殊方法吧
__getattribute__:当调用方法的时候,此特殊方法无条件自动调用
当我们 对象.方法()时,等价于 对象.__getattribute__('方法')(),实际上也是调用这个方法实现的
# 例如:class Person: def func(self): return '函数1'p = Person()p.func() # 返回:函数1# 当 p.func()时,实际上是调用了 p.__getattribute__('func')()
装饰一个类中的所有方法,需要三步:
1、定义一个类装饰器
2、定义一个特殊方法 __getattribute__(),利用此方法实现装饰器
3、继承 类装饰器
![5797644a2fd94d67fb82164d62ea6223.png](https://i-blog.csdnimg.cn/blog_migrate/e26cfa224a1d81b3accb266ad2c18415.jpeg)
建议你关注我哦,全是干货