Discuss / Python / 装饰器

装饰器

Topic source
def metric(text):
    def decorator(func):
        @functools.wraps(func)
        def wrapper(*args, **kw):
            if isinstance(text, str):
                print('Begin %s %s():' % (text, func.__name__))
            else:
                print('Begin call %s():' % func.__name__)
            back = func(*args, **kw)
            print('End call')
            return back
        return wrapper
    if callable(text):
        return decorator(text)
    else:
        return decorator

  • 1

Reply