1、什么是装饰器
装饰指的是为被装饰对象添加新的功能
器指的是工具
装饰器本身可以任意可调用的对象,被装饰的对象也可以是任意可调用的对象
2、为什么要装饰器
扩展新功能:写一个函数用来为另外一个函数添加新功能,需要遵循开放封闭原则(对修改是封闭的,对扩展是开放的)
1、不修改被装饰对象的源代码
2、不修改装饰对象的调用方式
3、怎么用
例如:统计函数的时间
1.创建新功能(计算时间)的函数
满足了第一个要求,不改变源代码。但调用方式改了
2.创建装饰器,将新函数设计成闭包函数,被调用函数以参数形式传入装饰器
3.变量接受装饰器的返回值
原文:https://www.cnblogs.com/linbin7/p/10586287.html