import functools def log(both): if not isinstance(both, str): @functools.wraps(both) def log1(*arg, **kw): print('call %s():' % both.__name__) return both(*arg, **kw) return log1 else: def log2(fn): @functools.wraps(fn) def wrapper(*arg, **kw): print('%s %s():' % (both, fn.__name__)) return fn(*arg, **kw) return wrapper return log2 @log def now1(): print('2019-6-13') now1() @log('execute') def now2(): print('2019-6-13') now2()
既支持:
@log def f(): pass
又支持:
@log('execute') def f(): pass
Sign in to make a reply
用户7034793165