python - 用类写装饰器

Posted Anec

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python - 用类写装饰器相关的知识,希望对你有一定的参考价值。

这里用到了__call__的class内置参数

#类装饰器:
class zsq():
    #本质是定义一个参数,让装饰的主题传递至__call__方法内部
    def __init__(self,obj):
        self.obj = obj
    #利用__call__将类转变为可执行
    #__call__内相当于函数装饰器最外层
    def __call__(self, *args, **kwargs):
        print("start")
        #返回主机函数
        re = self.obj(*args, **kwargs)
        print("end")
        return re

#装饰
@zsq
def Test():
    print( "这是Test主体函数....")
    return "这是Test主体函数...."

# 赋值,执行
a = Test()
print(a)

 

以上是关于python - 用类写装饰器的主要内容,如果未能解决你的问题,请参考以下文章

python使用上下文对代码片段进行计时,非装饰器

类中的Python装饰器

由浅入深,走进Python装饰器-----第五篇:进阶--类装饰类

由浅入深,走进Python装饰器-----第二篇:进阶--类装饰函数

python 装饰器:装饰器实例类装饰器(装饰函数)

python 装饰器:装饰器实例类装饰器(装饰函数)