def func(): print("func body") def f1(arg): print("f1:",arg) def wrapper(b): print("f1 wrapper:",b) return b return wrapper def f2(f): print("f2:",f) def wrapper(arg): print("f2 wrapper:",arg) f() return wrapper # f1_wrapper(f2(func)) # f1_wrapper(f2_wrapper) func = f1("args")(f2(func)) func(3) print("------------------------") @f1("1") @f2 def fun2(): print("fun2") fun2("12345")
# 最后一个包装器会自动传入 fun 对象,调用流程为: fun2 = f1("1")(fun2("2"))
# 中间步骤:
# fun2 = f1_wrapper(f2_wrapper)
以上个人见解。。。。。