由浅入深,走进Python装饰器-----第二篇:进阶--类装饰函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了由浅入深,走进Python装饰器-----第二篇:进阶--类装饰函数相关的知识,希望对你有一定的参考价值。
**类装饰器**
@类
函数
2.1 用类装饰器来扩展原函数
# 用类装饰器来扩展原函数, 通过对象函数化触发__call__方法,进行返回
class KuoZhan():
def __call__(self,f):
return self.newfunc(f)
def newfunc(self,f):
def in_newfunc():
print("1")
f()
print("2")
return in_newfunc
@KuoZhan() #1. KuoZhan() ==> obj 2. @obj ==> obj( ) 3. func = obj( func)
def func():
print("我是原函数")
func()
>>>1
>>>我是原函数
>>>2
2.2 用类装饰器来扩展原函数
# 直接调用类函数
class KuoZhan():
def newfunc(f):
def in_newfunc():
print("1")
f()
print("2")
return in_newfunc
@KuoZhan.newfunc # 直接类调用 1. @KuoZhan.newfunc2 ==> KuoZhan.newfunc2() 2. func = KuoZhan.newfunc2(func) = in_newfunc(func)
def func():
print("我是原函数")
func()
>>>1
>>>我是原函数
>>>2
2.3 类装饰类里的函数
待续....
以上是关于由浅入深,走进Python装饰器-----第二篇:进阶--类装饰函数的主要内容,如果未能解决你的问题,请参考以下文章
由浅入深,走进Python装饰器-----第五篇:进阶--类装饰类