def decorator_a(func):print('Get in decorator_a')
def inner_a(*args,**kwargs):print('Get in inner_b')
res =func(*args,**kwargs) #返回值在两个定义的函数中都要定义
return res
return inner_a
def decorator_b(func):print('Get in decorator_b')
def inner_b(*args,**kwargs):print('Get in inner_b')
res =func(*args,**kwargs) #返回值在两个定义的函数中都要定义,且这个返回值的结果在最后执行
return res
return inner_b
@decorator_b
@decorator_a
def f(x):print('Get in f')return x *2print(f(1))
结果:
Get in decorator_a
Get in decorator_b
Get in inner_b
Get in inner_b
Get in f
2
多个装饰器的执行顺序:以下我们用一个例子查看多个装饰器的执行顺序def decorator_a(func): print('Get in decorator_a') def inner_a(*args,**kwargs): print('Get in inner_b') res = func(*args,**kwargs) #返回值在...