復習裝飾器
阿新 • • 發佈:2018-06-04
gin min ted apple 修改 4.0 基礎上 font 說我
無參裝飾器
1 開放封閉原則
軟件一旦上線後,就應該遵循開放封閉原則,即對修改源代碼是封閉的,對功能的擴展是開放的
也就是說我們必須找到一種解決方案:
能夠在不修改一個功能源代碼以及調用方式的前提下,為其加上新功能
總結,
原則如下:
1、不修改源代碼
2、不修改調用方式
目的:
在遵循1和2原則的基礎上擴展新功能
2、什麽是裝飾器?
器指的工具,裝飾指的是為被裝飾對象添加新功能
完整含義:
裝飾器即在不修改被裝飾對象源代碼與調用方式的前提下,為被裝飾器對象添加新功能
裝飾器與被裝飾的對象均可以是任意可調用的對象
裝飾器=》函數
被裝飾的對象=》函數
#無參裝飾器模板
def outer(func):
def inner(*args,**kwargs):
res=func(*args,**kwargs)
return res
return inner
裝飾器魔法糖
關鍵字@,@後面跟裝飾器函數名,正下面為需要用到裝飾器的函數,@必須單獨一行
有參裝飾器
在裝飾器上再加一層包裝,也就是再套一套函數,
魔法糖調用時,@最外層函數(參數),@帶參數最外層函數
復習裝飾器