1. 程式人生 > >python的多裝飾器簡單理解

python的多裝飾器簡單理解

def outer(func):
    print("……外層裝飾器開始執行……")
    def 外層():
        print("外層裝飾功能1")
        func()
        print("外層裝飾功能2")
    print("……內層裝飾準備好,功能和函式('外層裝飾功能1',func('內層裝飾功能1',func(),'內層裝飾功能2')',外層裝飾功能2'),返回執行……")
    return 外層

def inner(func):
    print("……內層裝飾器開始執行……")
    def 內層():
        print("內層裝飾功能1")
        func()
        print("內層裝飾功能2")
    print("……內層裝飾準備好,功能和函式('內層裝飾功能1',func(),'內層裝飾功能2'),返回給外層裝飾器……")
    return 內層

@outer
@inner
def test():
    print("原始功能函式")

# 就是最低一級的其他資訊執行完,把原始函式網上仍(傳遞的意思),直到所有的其它裝飾資訊都執行完

test()

 

程式碼執行結果,看紅色部分即可理解

 

 

……內層裝飾器開始執行……
……內層裝飾準備好,功能和函式('內層裝飾功能1',func(),'內層裝飾功能2'),返回給外層裝飾器……
……外層裝飾器開始執行……
……內層裝飾準備好,功能和函式('外層裝飾功能1',func('內層裝飾功能1',func(),'內層裝飾功能2')',外層裝飾功能2'),返回執行……
外層裝飾功能1
內層裝飾功能1
原始功能函式
內層裝飾功能2
外層裝飾功能2