Python装饰器

在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为decorator,功能是在执行函数前输出函数名。

可以通过在需要装饰的函数前加

@log

你可能感兴趣的:(Python装饰器)