2022-09-18
多個裝飾器使用的實體:
1 # 定義一個裝飾器 2 def make_p(func): 3 print("執行裝飾器make_p") 4 5 def inner(): 6 # 對已有函式增加新的功能 7 result = "<p>" + func() + "</p>" 8 # 和已有函式保持一致,如果已有函式有回傳值,則這里也加上回傳值;如果已有函式有引數,那么這里也加上引數, 9 return result 10 11 return inner 12 13 # 定義第二個裝飾器 14 def make_div(func): 15 print("執行裝飾器make_div") 16 17 def inner(): 18 # 對已有函式增加新的功能 19 result = "<div>" + func() + "</div>" 20 # 和已有函式保持一致,如果已有函式有回傳值,則這里也加上回傳值;如果已有函式有引數,那么這里也加上引數, 21 return result 22 23 return inner 24 25 # 設定裝飾器語法糖 26 @make_div 27 @make_p 28 # 原來的函式 29 def content(): 30 return "人生苦短,我用python!" 31 32 if __name__ == '__main__': 33 result = content() 34 print(result)
運行的結果如下:

由結果圖可知,多個裝飾器同時使用,會先執行內部函式,離原來函式距離最近的裝飾器,之后,再執行外層的裝飾器,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/508993.html
標籤:Python
下一篇:帶有引數的裝飾器
