***装饰器***
装饰器(Decorators)是 Python 的一个重要部分。简单地说:他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短,也更Pythonic(Python范儿)。
装饰器的语法以"@“开头,类似于Java/C#的”@Annotation",就是在定义的函数上一行加一个"@xxx"来为这个方法装饰一些功能。在某种程度上:装饰器并不是一个功能特性,只是一个语法糖;因为python装饰器的本质是将函数或对象作为参数传递给另一个函数或对象,最后再返回新的函数对象,这是一个早就有的概念,装饰器只是这个旧概念的新语法。
OCP原则 open close protocol
在不动原有代码的基础上,将我们需要的功能添加上去,就是Python的装饰器
Python的装饰器就是一种装饰者设计模式的体现
python利用闭包实现了装饰器
如果被装饰的函数存在参数,则需要在装饰器函数的里面的函数上传递
例:
运行结果为: