装饰器就是对闭包的使用
关于闭包可参见上一篇关于闭包的介绍
写个小程序来理解装饰器的具体实现过程
def deco(fun):
def in_deco(x,y):
print("in deco")
fun(x,y)
return in_deco
@deco
def bar(x,y):
print("in bar",x+y)
bar(1,2)
#1、deco(bar)》》》in_deco
#2、bar = in_deco
#3、bar() in_deco(1,2) bar(1,2)
#结果
in deco
in bar 3