装饰器

装饰器  

一般格式

def wrapper(func) :                            #1
    def inner(*args,**kwargs) :                 #3
        """主功能执行前添加的功能"""                   ret = func(*args,**kwargs)              #6
        """主功能执行前添加的功能"""                   return ret                              #8
    return inner                                #4
@wrapper     # == func = wrapper(func)  语法糖   #2
def func1(*args,**kwargs) :                     
    print("in func")                            #7
func1()                                          #5

开放封闭原则

1.对扩展是开放的

  为什么要对扩展开放呢?

  我们说,任何一个程序,不可能在设计之初就已经想好了所有的功能并且未来不做任何更新和修改。所以我们必须允许代码扩展、添加新功能。

2.对修改是封闭的

  为什么要对修改封闭呢?

  就像我们刚刚提到的,因为我们写的一个函数,很有可能已经交付给其他人使用了,如果这个时候我们对其进行了修改,很有可能影响其他已经在使用该函数的用户。

装饰器完美的遵循了这个开放封闭原则。



posted @ 2017-11-03 18:40  4个人搬木头  阅读(55)  评论(0)    收藏  举报