1、类装饰器
我们除了可以使用函数装饰函数外,还可以用类装饰函数。"""先理清一下装饰器的思路:
1、
def desc(func):
def inner(*args, **kwargs):
pass
return inner
@desc
def test():
pass
这样的装饰器,其实就是:
1.执行装饰器函数desc,并把被装饰的函数test当中参数传进去,即desc(test)
2.将desc的返回值inner重新赋值给test,即test=inner
3.执行test()即执行 inner()
2、
def outter(x):
def desc(func):
def inner(*args, **kwargs):
pass
return inner
return desc
@outter('嘿嘿')
def test():
pass
这样的装饰器,其实就是:
0.先执行outter('嘿嘿'),获得函数desc,装饰器其实也是@desc
1.执行装饰器函数desc,并把被装饰的函数test当中参数传进去,即desc(test)
2.将desc的返回值inner重新赋值给test,即test=inner
3.执行test()即执行 inner()
3、那么类装饰器就可以有两种