zoukankan      html  css  js  c++  java
  • python 装饰器

    开放封闭原则

        1.对扩展是开放的

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

        2.对修改是封闭的

            就像我们刚刚提到的,因为我们写的一个函数,很有可能已经交付给其他人使用了,如果这个时候我们对函数内部进行修改,或者修改了函数的调用方式,很有可能影响其他已经在使用该函数的用户。OK,理解了开封封闭原则之后,我们聊聊装饰器。   

    装饰器

           什么是装饰器?从字面意思来分析,先说装饰,什么是装饰? 装饰就是添加新的,比如你家刚买的房子,下一步就是按照自己的喜欢的方式设计,进行装修,装饰,地板,墙面,家电等等。什么是器?器就是工具,也是功能,那装饰器就好理解了:就是添加新的功能。

       装饰器的作用 :在不改变原函数的调用方式的情况下,在函数的前后添加功能
    装饰器的本质 : 闭包函数
    
    
    from functools import wraps
    def wrapper(func): #func = holiday
    @wraps(func)
    def inner(*args,**kwargs):
    print('在被装饰的函数执行之前做的事')
    ret = func(*args,**kwargs)
    print('在被装饰的函数执行之后做的事')
    return ret
    return inner

    @wrapper #holiday = wrapper(holiday)
    def holiday(day):
    '''这是一个放假通知'''
    print('全体放假%s'%day)
    return '好开心'

    print(holiday.__name__)
    print(holiday.__doc__)
    ret = holiday(3) #inner
    print(ret)
    
    
    
    
    
  • 相关阅读:
    HashMap的小总结 + 源码分析
    Java的Cloneable接口还有深浅复制
    由Reference展开的学习
    类型信息小笔记
    String的小笔记
    Thinking In Java持有对象阅读记录
    Longest Palindromic Substring笔记
    Eclipse部署项目的原理简介eclipse,wtpwebapps,tomcat
    如何给不支持新特性的浏览器打补丁(让老版本IE兼容新特性)
    Listener监听器与Filter过滤器
  • 原文地址:https://www.cnblogs.com/xiaoli0520/p/13776629.html
Copyright © 2011-2022 走看看