import functools
def log(args_log):
if callable(args_log): #callable(object)检查对象object是否可调用 @functools.wraps(args_log) def wrapper(*args, **kw): print('begin call') print('call %s():' % args_log.__name__) args_log(*args, **kw) print('end call') return wrapper else: def decorator(func): @functools.wraps(func) def wrapper(*args, **kw): print('begin call') print('%s %s():' % (args_log, func.__name__)) func(*args, **kw) print('end call') return wrapper return decorator
@log def f(): print('执行f函数')
@log('execute') def f2(): print('执行f函数')
f() f2()
Sign in to make a reply
一雷叔一
import functools
def log(args_log):
@log def f(): print('执行f函数')
@log('execute') def f2(): print('执行f函数')
f() f2()