复习装饰器

无参装饰器

 

1 开放封闭原则

    软件一旦上线后,就应该遵循开放封闭原则,即对修改源代码是封闭的,对功能的扩展是开放的

    也就是说我们必须找到一种解决方案:

        能够在不修改一个功能源代码以及调用方式的前提下,为其加上新功能

 

        总结,

        原则如下:

            1、不修改源代码

            2、不修改调用方式

        目的:

            在遵循1和2原则的基础上扩展新功能

 

2、什么是装饰器?

    器指的工具,装饰指的是为被装饰对象添加新功能

 

    完整含义:

        装饰器即在不修改被装饰对象源代码与调用方式的前提下,为被装饰器对象添加新功能

 

        装饰器与被装饰的对象均可以是任意可调用的对象

 

        装饰器=》函数

        被装饰的对象=》函数

 

 

#无参装饰器模板

def outer(func):

    def inner(*args,**kwargs):

        res=func(*args,**kwargs)

        return res

    return inner

 

 

装饰器魔法糖

 

关键字@,@后面跟装饰器函数名,正下面为需要用到装饰器的函数,@必须单独一行

 

 

 

 有参装饰器

 

在装饰器上再加一层包装,也就是再套一套函数,

 

魔法糖调用时,@最外层函数(参数),@带参数最外层函数

原文地址:https://www.cnblogs.com/yangli0504/p/9135017.html