Discuss / Python / 参考了下同学的答案

参考了下同学的答案

Topic source

import functools

def log(text): if isinstance(text, str): def decorator(func): @functools.wraps(func) def wrapper(args, **kw): print('begin call' + text) func(args, kw) print('end call') return wrapper return decorator else: func = text @functools.wraps(func) def wrapper(*args, kw): print('begin call') func(args, *kw) print('end call') return wrapper

@log def now1(): print('call '+ now1.name +"()")

now1() @log('excute') def now2(): print('call '+ now2.name +"()")

now2()

忘了把**kw的星号转义了。改改才不会报错


  • 1

Reply