這篇文章將為大家詳細(xì)講解有關(guān)Python項(xiàng)目中如何使用裝飾器,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
一. 什么是裝飾器
知乎某大佬如是說:內(nèi)褲可以用來(lái)遮羞,但是到了冬天它沒法為我們防風(fēng)御寒,聰明的人們發(fā)明了長(zhǎng)褲,有了長(zhǎng)褲后寶寶再也不冷了,裝飾器就像我們這里說的長(zhǎng)褲,在不影響內(nèi)褲作用的前提下,給我們的身子提供了保暖的功效。
裝飾器本質(zhì)上是Python函數(shù),可以為已存在的對(duì)象添加額外的功能,同時(shí)裝飾器還可以抽離出與函數(shù)無(wú)關(guān)的重用代碼。具體應(yīng)用場(chǎng)景如:插入日志、性能測(cè)試、事務(wù)處理、緩存、權(quán)限校驗(yàn)等。
換言之
裝飾器不能影響原函數(shù)的功能,裝飾器是獨(dú)立出來(lái)的函數(shù)。誰(shuí)調(diào)用它,誰(shuí)就可以使用它的功能。
二.舉個(gè)栗子
add的功能是計(jì)算x和y的值,我們稱作功能函數(shù)。
logger的作業(yè)是在執(zhí)行add函數(shù)的同時(shí)再打印了其他的信息,這部分的作為add的功能增強(qiáng),我們稱為裝飾。
在logger里我們可以加入其他類似的功能函數(shù),也能包裝它,可以進(jìn)行復(fù)用。
1.引子
#功能函數(shù) def add(x,y): return x+y #裝飾函數(shù) def logger(fn): print('frist') x = fn(4,5) print('second') return x print(logger(add)) #把函數(shù)add傳給logger ,return x+y #print('frist') #print('secend') # x = fn(4,5) ==> x = 4 y= 5 x= 4+5 = 9 #return 9
當(dāng)前題目:Python項(xiàng)目中如何使用裝飾器-創(chuàng)新互聯(lián)
分享地址:http://chinadenli.net/article46/cdjpeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、軟件開發(fā)、搜索引擎優(yōu)化、ChatGPT、企業(yè)建站、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容