1. 程式人生 > >復習裝飾器

復習裝飾器

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

裝飾器魔法糖

關鍵字@,@後面跟裝飾器函數名,正下面為需要用到裝飾器的函數,@必須單獨一行

有參裝飾器

在裝飾器上再加一層包裝,也就是再套一套函數,

魔法糖調用時,@最外層函數(參數),@帶參數最外層函數

復習裝飾器