DAY 13 开放封闭原则
Posted mrpotato-head
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DAY 13 开放封闭原则相关的知识,希望对你有一定的参考价值。
装饰器:
即是用一个函数去拓展另一个函数,同时遵循开放封闭原则
开放封闭原则
对修改关闭,对拓展开放
不允许修改源代码以及调用方式
以下是无参函数的基本格式
1 def outer(func): 2 def wrapper(*args,**kwargs): 3 # 新功能 4 res=func(*args,**kwargs) 5 return res 6 return wrapper
无参函数的语法糖是
@装饰器函数名称 必须写在被装饰函数的正上方
而且装饰器的定义,必须在被装饰函数的上方
也可以使用多个装饰器函数给同一个函数装饰
@装饰器1
@装饰器2
def func()
pass
装饰顺序是先装饰器2给func装饰,然后是装饰器1
调用的时候是装饰器1先执行,然后是装饰器2的代码,然后是func()
有参装饰器模板
def m_outter(file): def outter(func) def wrapper(*args,**kwargs): #函数体代码 res=func(*args,**kwargs) return res return wrapper return outter
上面是有参装饰器模板,使用m_outter函数给内部装饰器进行传值,
如果内部wrapper()需要借助外部函数给其传值,则使用有参装饰器,
有参数装饰器的语法糖
@m_ouuter(参数)
func #被装饰函数
以上是关于DAY 13 开放封闭原则的主要内容,如果未能解决你的问题,请参考以下文章