Day04,Python裝飾器

在實際開發過程中,對已開發好的模塊代碼添加功能,但不能修改原代碼,不然違反了軟件開發中的“開發-封閉”原則 ,它規定已經實現的功能不允許被修改,但可以被擴展,即:

封閉:已實現的功能代碼塊不應該被修改

開放:對現有功能的擴展開放

Python在面向對象(OOP)的設計模式中,decorator被稱爲裝飾模式。OOP的裝飾模式需要通過繼承和組合來實現,而Python除了能支持OOP的decorator外,直接從語法層次支持decorator。可以用函數實現,也可以用類實現。decorator可以增強函數的功能,定義起來雖然有點複雜,但使用起來非常靈活和方便。

1、無參數裝飾器,即需要裝飾的函數不需要傳入參數。

QQ截圖20181219152209

2、有參數裝飾器,即需要裝飾的函數有傳入參數。

image

3、不定長參數裝飾器

image

4、對帶有返回值的函數裝飾

image

5、通用裝飾器,兼容上面4種情況

image

6、裝飾器裝參數

image

7、舉例,某個網站已成功上線一段時間,現在有個需求,需要對某些頁面只針對vip客戶開放,需要添加權限認證。

image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章