码迷,mamicode.com
首页 > 其他好文 > 详细

DAY 13 开放封闭原则

时间:2019-01-15 17:09:23      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:开放   div   gif   方式   图片   img   传值   函数   style   

装饰器:

  即是用一个函数去拓展另一个函数,同时遵循开放封闭原则

开放封闭原则

  对修改关闭,对拓展开放

  不允许修改源代码以及调用方式

以下是无参函数的基本格式

技术分享图片
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 开放封闭原则

标签:开放   div   gif   方式   图片   img   传值   函数   style   

原文地址:https://www.cnblogs.com/MrPotato-Head/p/10272540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!