编写高质量Python代码的59个有效方法 第6章 内置模块 第42条:用functools.wraps装饰wrapper装饰器
调试递归函数时我们常需要打印出每一步的参数及返回值,这时写个装饰器十分高效:deftrace(func):defwrapper(*args,**kw):result=func(*args,**kw)print(f"{func.__name__}({args},{kw})-->{result}")returnresultreturnwrapper@tracedeffibonacci(n):ifnin