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
View Code

无参函数的语法糖是

@装饰器函数名称 必须写在被装饰函数的正上方

而且装饰器的定义,必须在被装饰函数的上方

也可以使用多个装饰器函数给同一个函数装饰

@装饰器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
View Code

上面是有参装饰器模板,使用m_outter函数给内部装饰器进行传值,

如果内部wrapper()需要借助外部函数给其传值,则使用有参装饰器,

有参数装饰器的语法糖

@m_ouuter(参数)

func  #被装饰函数

 

以上是关于DAY 13 开放封闭原则的主要内容,如果未能解决你的问题,请参考以下文章

Day21

Day 3-5 装饰器

设计原则之开放封闭原则

开放封闭原则:不改代码怎么写新功能?

设计模式--开放封闭原则

必知必会的设计原则——开放封闭原则