装饰器
完美定义:
在不改变原函数的源代码以及调用方式的基础上,为其添加额外的功能。
遵循开放封闭原则
1.对扩展是开放的
我们说,任何一个程序,不可能在设计之初就已经想好了所有的功能并且
未来不做任何更新和修改。所以我们必须允许代码扩展、添加新功能。
2.对修改是封闭的
就像我们刚刚提到的,因为我们写的一个函数,很有可能已经交付给其他
人使用了,如果这个时候我们对函数内部进行修改,或者修改了函数的调用
方式,很有可能影响其他已经在使用该函数的用户。
初级版装饰器
@test 语法糖可以这样理解:
1, test(func) 执行
2,得到返回值inner 赋值给func