装饰器:
what:写一个函数为另一个函数添加功能
why:开发封闭的原则,软件一旦上线就应该封闭修改,开放拓展
封闭修改:1.不能修改软件源代码。2.也不能修改软件的调用方式
开发拓展:可以为原有的功能添加新的功能。
装饰器就是要在不改变软件源代码以及调用方式的前提下,为软件添加新的功能
how:。。。。。。。。。。
无参装饰器:
# def outter(func):
# def wrapper(*args,**kwargs):
# res=func(*args,**kwargs)
# return res
# return wrapper
有参装饰器:
def outter2(xxx,yyy):
def outter(func):
def wrapper(*args,**kwargs):
res=func(*args,**kwargs)
print(xxx)
print(yyy)
return res
return wrapper
return outter