Python实现装饰模式的一段代码

# 实现装饰模式的一段代码
import functools
def 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)
@log
def now():
    print('2015-3-25')
now()
print(now.__name__)

结果:

call now()
2015-3-25
now

 

posted @ 2016-08-09 17:49  FrankYou  阅读(260)  评论(0编辑  收藏  举报