2022-09-11 裝飾器 裝飾器的定義: 裝飾器是一種特殊的閉包函數,該閉包函數中有且只有一個參數,且該參數是一個函數類型。 裝飾器的作用: 裝飾器可以給已有函數添加新的功能。 裝飾器的特點(區別與其他函數): (1)它不會改變原來函數調用的方式。 (2)它不會改變原來函數的源代碼。 (3)可以 ...
2022-09-11
裝飾器
裝飾器的定義:
裝飾器是一種特殊的閉包函數,該閉包函數中有且只有一個參數,且該參數是一個函數類型。
裝飾器的作用:
裝飾器可以給已有函數添加新的功能。
裝飾器的特點(區別與其他函數):
(1)它不會改變原來函數調用的方式。
(2)它不會改變原來函數的源代碼。
(3)可以給原來的函數添加新的功能。
與裝飾器配合使用的是:
裝飾器語法糖。
裝飾器語法糖的使用格式:
@裝飾器名稱
裝飾器語法糖的作用:
類似於一種既定模式,設置後,表示原來函數有一個裝飾器。
註意:在執行一個包含裝飾器函數的Python代碼,當記憶體載入該函數後,會先執行裝飾器代碼。
裝飾器使用舉例:
1 def func_out(func): 2 def inner(): 3 print("登陸成功") 4 func() 5 return inner 6 7 @func_out 8 def func(): 9 print("發表評論") 10 11 func()
說明:
(1)第1-5行是聲明瞭一個裝飾器,它本質上是一個閉包。第3行表示要給原來函數增加的功能。第1行原來的函數作為一個參數傳入。
(2)在第7行中,是一個裝飾器語法糖的聲明。表示下麵的函數要用到裝飾器。
(3)第8行指的是原來的函數。
(4)第11行,調用原來的函數,有了裝飾器後,執行裝飾器內的代碼。
運行結果圖: