溫馨提示×

溫馨提示×

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

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

python裝飾器的功能和特性

發(fā)布時間:2021-09-04 13:00:50 來源:億速云 閱讀:135 作者:chen 欄目:開發(fā)技術

這篇文章主要講解了“python裝飾器的功能和特性”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“python裝飾器的功能和特性”吧!

裝飾器總結(jié)

什么是裝飾器?處理函數(shù)的函數(shù),加一個功能,但是不影響原來函數(shù)的內(nèi)部結(jié)構生活中的例子:給手機加一個外殼,外殼保護了手機

裝飾器有什么用?增強函數(shù)的功能

裝飾器使用場景增加被裝飾函數(shù)的行為代碼復用

一個函數(shù)接收另一個函數(shù)作為參數(shù),這種函數(shù)稱之為高階函數(shù)。

函數(shù)的重要特性

1.在python中,一切皆為對象,所以函數(shù)也是一個對象,從而函數(shù)可以賦值給變量。

定義一個add函數(shù),函數(shù)的功能是實現(xiàn)兩個數(shù)相加

python裝飾器的功能和特性

系統(tǒng)為函數(shù)分配了一個內(nèi)存地址:0x00000000021B3798

python裝飾器的功能和特性

2.一個函數(shù)可以作為另一個函數(shù)的返回值

python裝飾器的功能和特性

3.一個函數(shù)可以嵌套定義在另一個函數(shù)中

python裝飾器的功能和特性

python裝飾器的功能和特性

4.一個函數(shù)可以作為另一個函數(shù)的實參。

先來了解一下map函數(shù)
map函數(shù)是根據(jù)指定函數(shù)對指定序列做映射,可以有效提高程序運行效率。

看一下map函數(shù)的源碼:map(func, *iterables)

map函數(shù)接受兩個參數(shù):

func:指定函數(shù)函數(shù)
iterables:可迭代對象,一個序列或者多個序列,即函數(shù)對應的實參

python裝飾器的功能和特性

python裝飾器的功能和特性

裝飾器

想要實現(xiàn)一個功能,在不改變 test 函數(shù)內(nèi)部結(jié)構的前提下,在前面加一句 “少壯不努力”

python裝飾器的功能和特性

弄清楚了裝飾器的工作原理:

  • 寫一個高階函數(shù),即參數(shù)是函數(shù),返回的也是函數(shù);上面的例子,傳函數(shù) test 作為實參,最后返回函數(shù) test ;

  • 在利用語法糖@,簡化賦值操作;

但這樣的代碼是有缺陷:test 函數(shù)直接返回了函數(shù)名,這樣后面就不好調(diào)用了。

改 進:

python裝飾器的功能和特性

python裝飾器的功能和特性

感謝各位的閱讀,以上就是“python裝飾器的功能和特性”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對python裝飾器的功能和特性這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

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

AI