装饰器
在代码运行期间动态增加功能的方式,称之为“装饰器”(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