溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Day04,Python裝飾器

發(fā)布時(shí)間:2020-07-28 11:12:28 來源:網(wǎng)絡(luò) 閱讀:439 作者:是打開結(jié)巴 欄目:編程語言

在實(shí)際開發(fā)過程中,對已開發(fā)好的模塊代碼添加功能,但不能修改原代碼,不然違反了軟件開發(fā)中的“開發(fā)-封閉”原則 ,它規(guī)定已經(jīng)實(shí)現(xiàn)的功能不允許被修改,但可以被擴(kuò)展,即:

封閉:已實(shí)現(xiàn)的功能代碼塊不應(yīng)該被修改

開放:對現(xiàn)有功能的擴(kuò)展開放

Python在面向?qū)ο螅∣OP)的設(shè)計(jì)模式中,decorator被稱為裝飾模式。OOP的裝飾模式需要通過繼承和組合來實(shí)現(xiàn),而Python除了能支持OOP的decorator外,直接從語法層次支持decorator。可以用函數(shù)實(shí)現(xiàn),也可以用類實(shí)現(xiàn)。decorator可以增強(qiáng)函數(shù)的功能,定義起來雖然有點(diǎn)復(fù)雜,但使用起來非常靈活和方便。

1、無參數(shù)裝飾器,即需要裝飾的函數(shù)不需要傳入?yún)?shù)。

Day04,Python裝飾器

2、有參數(shù)裝飾器,即需要裝飾的函數(shù)有傳入?yún)?shù)。

Day04,Python裝飾器

3、不定長參數(shù)裝飾器

Day04,Python裝飾器

4、對帶有返回值的函數(shù)裝飾

Day04,Python裝飾器

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

Day04,Python裝飾器

6、裝飾器裝參數(shù)

Day04,Python裝飾器

7、舉例,某個(gè)網(wǎng)站已成功上線一段時(shí)間,現(xiàn)在有個(gè)需求,需要對某些頁面只針對vip客戶開放,需要添加權(quán)限認(rèn)證。

Day04,Python裝飾器

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI