python用类装饰函数的一个有趣实现

Posted

tags:

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

class RunningLog:
    def __init__(self,func):
        self._func=func
        self._func_name = func.__name__

    def __call__(self,func_name,level=None):
        self.level=level
        value=getattr(self, func_name.__str__())()
        self._func(func_name,self.level)
        return ‘result: ‘+value

    def fun(self):
        print ‘get value from class‘,self.level
        print ‘do something‘
        return ‘test end‘


@RunningLog
def bar(func_name,level=None):
    print ‘has done ‘,func_name
    print ‘level name===>‘,level


result=bar(‘fun‘,level=‘test‘)
print result

  

以上是关于python用类装饰函数的一个有趣实现的主要内容,如果未能解决你的问题,请参考以下文章

用类作为装饰器装饰函数!

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

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

python装饰器的简单理解

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

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