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)

 

 

以上個人見解。。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章