装饰器
类装饰器
装饰器还有一种特殊的语法就是类装饰器,就是通过定义一个类来装饰函数。
注意:
需要让类的实例对象能够像函数一样进行调用,需要在类里面使用__call__魔法方法,把类的实例变成可调用对象(callable 请求即付的);
类装饰器装饰函数功能在__call__方法里进行添加
# 灵魂语法: f1=类名(f1) f1从函数变成了对象, f1(xxx)实则是 f1.__call__(xxx)
resurlt = f1(yy)
代码说明:
1、@类装饰器名:等价于“函数引用 = 类名(函数引用)”,所以需要提供一个__init__方法,并多增加一个fn参数。
2、在__call__方法里进行对fn函数的装饰,可以添加额外的功能。
多个装饰器的使用
直接上代码,根据代码理解
多个装饰器的装饰过程就是:离函数最近的装饰器先装饰,然后外面的装饰器再进行装饰,由内到外的装饰过程。
---------------------
版权声明:本文为CSDN博主「鬼义虎神」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013487601/article/details/97921138