def log(*txt): if txt[0] == 'execute': def decorator(fn): @functools.wraps(fn) def wrapper(*args, **kwargs): print(f'execute : {fn.__name__}') print('begin call') result = fn(*args, **kwargs) print('end call') return result return wrapper return decorator else: fn = txt[0] @functools.wraps(fn) def wrapper(*args, **kwargs): print('begin call') result = fn(*args, **kwargs) print('end call') return result return wrapper
需要注意的是使用可变参数时,输入的参数是以tuple的形式传入的,直接对比或者作为函数使用会报错
为什么加了一个中间值result后,会使函数的调用在中间显现
Sign in to make a reply
我不吃小孩子