开始是这样的:
#装饰器:传入一个函数,给传入的函数增加一些功能后,返回一个替代版的新函数。
#原函数
def old(age): #原函数
print("年龄是%d"%age) #原来的功能
old(99) #原函数运行
def outer(func): #传入一个函数,(func)可以传入old,还可以传入例如old1…… ----传入一个函数-----\
def inner(age): #定义新函数,要把原函数的参数传给新函数 ----------------\ \
print("原函数增加功能",end=" ") #增加原函数的功能(新功能) --------增加一些功能 装饰器格式
func(age) #可以理解为运行原函数(原功能) ------------------------/ /
return inner #最后返回一个新函数 -----------------------------------返回一个新函数-----/
old = outer(old) #把新函数的功能加给原函数
old(99) #增加了功能的函数
然后是这样的:
def outer(func): #传入一个函数,(func)可以传入old,还可以传入例如old1…… ----传入一个函数------\
def inner(*args,**kwargs): #定义新函数,要把原函数的参数传给新函数 -----\ \
print("原函数增加功能",end=" ") #增加原函数的功能(新功能) --------增加一些功能 装饰器格式
func(*args,**kwargs) #可以理解为运行原函数(原功能) -------------/ /
return inner #最后返回一个新函数 -----------------------------------返回一个新函数-----/
@outer #“@”是语法糖 功能相当于把新函数的功能赋值给原函数:old = outer(old)
def old(age): #原函数
print("年龄是%d"%age) #原来的功能
old(99) #功能升级后的新函数运行