Discuss / Python / 似乎可以更简练一些,留待之后研究

似乎可以更简练一些,留待之后研究

Topic source
import functools
def log(arg):
    def decorator(func):
        @functools.wraps(func)
        def wrapper(*args, **kw):
            if callable(arg):
                print('%s %s():' % ('call', func.__name__))
            else:
                print('%s %s():' % (arg, func.__name__))
            return func(*args, **kw)
        return wrapper
    if callable(arg):
        return decorator(arg)
    else:
        return decorator

@log
def now():
    print('2017-08-01')
@log('execute')
def now():
    print('2017-08-01')

  • 1

Reply