任务:
现有两个函数:
def print1(): print("I am print1")
def print2():
print("I am print2")
使用wrap,在执行print1之前输出:I am wraper1
在执行print2之前输出:I am wraper2 + 自定义文字
解答:
from functools import wraps #无参wrap def log1(func): @wraps(func) def wraper(*args,**kwargs): print("I am wraper1") return func(*args, **kwargs) return wraper @log1 def print1(): print("I am print1") # 有参数 def log2(txt): def log3(func): @wraps(func) def wraper1(*args, **kwargs): print("I am wraper2",txt) return func(*args, **kwargs) return wraper1 return log3 @log2('123') def print2(): print("I am print2") print1() print2()