# 实现装饰模式的一段代码import functoolsdef log(func): @functools.wraps(func) def wrapper(*args,**kw): print('call %s()' % func.__name__) return func(*args,**kw) return wrapper# 把@log放到now()函数的定义处,相当于执行了语句:now = log(now)@logdef now(): print('2015-3-25')now()print(now.__name__)
结果:
call now()2015-3-25now