1
def outer(func): def inner(): print('456') ret = func() print('789') return ret return inner @outer def inder(): print('123') inder()
#装饰器带参数
def outer(func): def inner(a1,a2): print('456') ret = func(a1,a2) print('789') print(ret) return ret return inner @outer def inder(a1,a2): print('123') return a1+a2 inder(4,4)
带N个参数的装饰器
def outer(func): def inner(*arg,**kwargs): print('456') ret = func(*arg,**kwargs) print('789') print(ret) return ret return inner @outer def inder(a1,a2,a3): print('123') return a1+a2+a3 inder(4,4,6)
#多个装饰器装饰同一个函数
def oueter2(func): def innet(*arg,**kwargs): print('3.5') ret=func(*arg,**kwargs) return ret return innet def outer(func): def inner(*arg,**kwargs): print('456') ret = func(*arg,**kwargs) print('789') print(ret) return ret return inner @oueter2 @outer def inder(a1,a2,a3): print('123') return a1+a2+a3 inder(4,4,6)
浙公网安备 33010602011771号