def deco(func): #传入原函数并在包装函数里调用
def wrapper(x,y): #装饰器中定义和原函数相同参数的包装函数
print('prepare')
result=func(x,y) #把这些参数再传入到原函数中
print('done')
return result #原函数有返回值时,在包装函数中返回
return wrapper #最后返回包装函数
@deco
def add(x,y):
print("running")
return x+y
print(add(3,7))
执行上段代码,得到结果:
python3 deco.py prepare running done 10