Python的@语法可以把decorator置于函数的定义处
先定义一个能打印日志的decorator
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')
结果
>>> now()
call now():
2015-3-25
把@log放到now()函数的定义处,相当于执行了语句:now = log(now)