装饰器
装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何改动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象。
装饰器的应用场景:比如插入日志,性能测试,事务处理,缓存等等场景。
开放封闭原则
1,对扩展是开放的
为什么要扩展开放?
答:任何一个程序,不可能在设计只初九已经想好了所有的功能并且未来不做任何更新和修改。所以我们必须 允许代码扩展、添加新功能。
2,对修改是封闭的
为什么要封闭修改?
答:因为我们写一个函数,很有可能已经交付给其他人使用了,如果这个时候我们对其进行了修改,很有可能 影响其他已经在使用该函数的用户。
装饰器的逐步理解。
第一步,我们需要在原函数的基础上添加功能,但是不能修改原函数。所以要写一个新函数,并在该函数中调用原函数。
在一个函数上添加功能固然是没问题,但是随着代码量的增加,可能会遇到必须在不同的函数上添加相同功能的情况。此时我们可以在新函数外再次添加一个函数,让不用的函数作为参数在函数中被装饰。
并且因为新函数嵌套在一个函数中,即便用原来的功能函数名赋值给新的功能函数名因为局部变量和全局变量不同,可以避免递归情况的出现。
这就是装饰器的基本操作了。
而在python中因为这样的操作过于频繁,官方给出了语法糖这样的便捷操作。
在python中语法糖的用法大致如下:
内置函数