装饰器的执行顺序图解
今天学了装饰器,有些懵逼,主要是其执行顺序分析起来有些复杂,就好比我,现在就来理下装饰器的执行顺序,只讨论 函数装饰器,类装饰器还没学到。
先看一个两层装饰器:
def fir(func2):
print(2)
def warp2(*args,**kwargs):
print(3)
func2(*args,**kwargs)
print(6)
return warp2
def sec(func1):
print(1)
def warp1(*args,**kwargs):
print(4)
func1(*args,**kwargs)
print(5)
return warp1
@fir
@sec
def aa(c):
print(c)
aa('最里边')
执行结果:
分析一下:
我的理解,装饰器就是把函数层层装饰。藏到最里面,调用的话从最外边找。
你可以把装饰器比喻成炼丹炉,被