一个一直以来很模糊的概念。
一个函数想要在调用前后打印日志,又不想改变函数的定义,这种在函数运行期间动态增加功能的方式叫装饰器。
本质:返回函数的高阶函数
装饰器也是一个函数, 接收函数作为参数,返回一个函数, 用@装饰器置于待调用函数之外。(廖雪峰官方示例)
https://www.cnblogs.com/cicaday/p/python-decorator.html
def log(func):
def wrapper(*args, **kw):
print('call %s():' % func.__name__)
return func(*args, **kw)
return wrapper
@log
def now():
print('2015-3-25')