定义 在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator) @ 装饰器符号 直接把@下一行的内容作为@后的参数传入 所以直接使用可以省事x-少写两行代码x wrapper()函数的参数定义是(*args, **kw),因此,wrapper()函数可以接受任意参数的调用。在wrapper()函数内,首先打印日志,再紧接着调用原始函数。 如果decorator本身需要传入参数,那就需要编写一个返回decorator的高阶函数,写出来会更复杂。