装饰器
在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。本质上,decorator就是一个返回函数的高阶函数。关键字wrapper
</pre><pre name="code" class="python">>>>def now(): print ('2014-12-10') #定义装饰器 >>>def log(func): @functools.wraps(func) #防止函数的名字被改变 def wrapper(*s,**kw): print('call %s()'%func.__name__) return func(*s,**kw) return wrapper >>>@log defmmm(x,y): print(x+y) #调用装饰器 >>>mmm <functionmmm at 0x02C44660> >>>mmm.__name__ 'mmm' >>>now.__name__ 'wapper' >>>@log defnow(x,y): print('d') >>>now(1,4) callnow() d