# 编写一个decorator,能在函数调用的前后打印出'begin call'和'end call'的日志。 import functools def log(text): if isinstance(text, str): def decorator(func): functools.wraps(func) def wrapper(*args, **kw): print('%s begin call : %s' % (text, func.__name__)) func(*args, **kw) print('%s end call : %s' % (text, func.__name__)) return wrapper return decorator else: func = text functools.wraps(func) def wrapper(*args, **kw): print('begin call : %s' % func.__name__) text(*args, **kw) print('end call : %s' % func.__name__) return wrapper @log def f(): print('不带参数') @log('excute') def f(): print('带参数') f()
请问为什么要func = text呢?text不是空值吗?
哥们我只服你
这个是正解!茅塞顿开!谢谢了!
Sign in to make a reply
Pop_林肥強