#装饰器的作用:不想修改函数的调用方式,但是还想再原来的函数后面添加功能
# 装饰器形成的过程 : 最简单的装饰器 有返回值的 有一个参数 万能参数
# 原则 :开放封闭原则
# 语法糖 :@
# 装饰器的固定模式
def wapper(func): #装饰器函数
#功能:不修改原调用方法的前提下,新增功能
def inner(*args,**kwargs):
#被装饰方法前面新增功能
ret = func(*args,**kwargs)
#被装饰方法之后新增功能
return ret
return inner
@wapper #语法糖,func = wapper(func)
def func(a):
#被装饰函数
print('hi',a)
return 2
ret = func(1)
print(ret)