python的多裝飾器簡單理解
阿新 • • 發佈:2019-01-03
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