您的位置:首页 > 编程语言 > Python开发

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

2019-04-14 17:26 706 查看
**类装饰器**
@类
函数

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 类装饰类里的函数

待续....
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: