python函数之装饰器

1、不带参的装饰器的一般写法

import functools

def log(func):
    @functools.wraps(func)
    def wrapper(*args, **kw):
        print 'call %s():' % func.__name__
        return func(*args, **kw)
    return wrapper

2、带参装饰器的一般写法

import functools

def log(text):
    def decorator(func):
        @functools.wraps(func)
        def wrapper(*args, **kw):
            print '%s %s():' % (text, func.__name__)
            return func(*args, **kw)
        return wrapper
    return decorator

 

posted @ 2017-04-11 19:07  skiler  阅读(59)  评论(0编辑  收藏  举报