装饰器执行流程
10 Oct 2017前段时间有个同事自学Python,问我装饰器执行流程,于是总结下来。
- addfunc加了两个装饰器函数执行完成之后,会输出
enter into deco_2
enter into deco_1
此时addfunc已经被包装成了addfunc = deco_1(deco_2(addfunc))
- 执行addfunc(3, 4)
首先执行deco_1,此时deco_1中的参数func为deco_2(addfunc),进入wrapper,输出enter into deco_1_wrapper
然后执行wrapper中的func,即deco_2(addfunc),进入了deco_2中的wrapper,输出enter into deco_2_wrapper
此时的func为addfunc本身,执行func(a,b),输出了result is 7,接着输出了over deco_2,over deco_1