Python包装器

    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)

以上个人见解。。。。。

复制请注明出处,在世界中挣扎的灰太狼
原文地址:https://www.cnblogs.com/XingXiaoMeng/p/14324539.html