Python进阶学习笔记——装饰器(3):类装饰器、多个装饰器的使用


装饰器

类装饰器

装饰器还有一种特殊的语法就是类装饰器,就是通过定义一个类来装饰函数。

注意:

需要让类的实例对象能够像函数一样进行调用,需要在类里面使用__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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容