10. 裝飾器
文章目錄
- 10. 裝飾器
- 10.1 定義
- 10.2 作用
- 10.3 功能特點
- 10.4 使用步驟
- 10.5 實質
- 10.6 語法糖用法
- 10.7 裝飾器的使用
- 10.8 通用裝飾器的使用
- 10.8.1 裝飾帶有參數的函數
- 10.8.2 裝飾帶有返回值的函數
- 10.8.3 裝飾帶有不定長參數的函數
- 10.8.4 通用裝飾器
- 10.9 多個裝飾器的使用
- 10.10 帶有參數的裝飾器
- 10.11 類裝飾器的使用
10.1 定義
給已有函數增加額外功能的函數,本質上就是一個閉包函數
符合了開發中的封閉開放原則
10.2 作用
在不改變原有函數的源代碼的情況下,給函數增加新的功能
10.3 功能特點
不修改已有函數的源代碼
不修改已有函數的調用方式
給已有函數增加額外的功能
10.4 使用步驟
① 定義一個裝飾器
② 使用裝飾器裝飾函數
10.5 實質
裝飾器就是把一個函數當做參數傳遞給閉包中的外部函數,同時在內部函數中使用這個函數,並給他添加新的功能
10.6 語法糖用法
@ 裝飾器名稱
10.7 裝飾器的使用
使用裝飾器實現函數執行時間的統計
10.8 通用裝飾器的使用
10.8.1 裝飾帶有參數的函數
10.8.2 裝飾帶有返回值的函數
10.8.3 裝飾帶有不定長參數的函數
10.8.4 通用裝飾器
10.9 多個裝飾器的使用
裝飾過程
- 離函數最近的裝飾器先裝飾,然後外面的裝飾器再進行裝飾
- 由內到外
10.10 帶有參數的裝飾器
語法格式: @裝飾器(參數,…)
裝飾器只能接收一個參數,並且還是函數類型
10.11 類裝飾器的使用
通過定義一個類來裝飾函數
想要讓類的實例對象能夠像函數一樣進行調用,需要在類裡面使用call方法,把類的實例變成可調用對象
類裝飾器的裝飾函數功能在call方法裡面進行添加