python 進(jìn)階學(xué)習(xí)之python裝飾器小結(jié)
裝飾器總結(jié)
什么是裝飾器?處理函數(shù)的函數(shù),加一個(gè)功能,但是不影響原來(lái)函數(shù)的內(nèi)部結(jié)構(gòu)生活中的例子:給手機(jī)加一個(gè)外殼,外殼保護(hù)了手機(jī)
裝飾器有什么用?增強(qiáng)函數(shù)的功能
裝飾器使用場(chǎng)景增加被裝飾函數(shù)的行為代碼復(fù)用
一個(gè)函數(shù)接收另一個(gè)函數(shù)作為參數(shù),這種函數(shù)稱之為高階函數(shù)。
函數(shù)的重要特性
1.在python中,一切皆為對(duì)象,所以函數(shù)也是一個(gè)對(duì)象,從而函數(shù)可以賦值給變量。
定義一個(gè)add函數(shù),函數(shù)的功能是實(shí)現(xiàn)兩個(gè)數(shù)相加

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

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

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


4.一個(gè)函數(shù)可以作為另一個(gè)函數(shù)的實(shí)參。
先來(lái)了解一下map函數(shù)
map函數(shù)是根據(jù)指定函數(shù)對(duì)指定序列做映射,可以有效提高程序運(yùn)行效率。
看一下map函數(shù)的源碼:map(func, *iterables)
map函數(shù)接受兩個(gè)參數(shù):
func:指定函數(shù)函數(shù)
iterables:可迭代對(duì)象,一個(gè)序列或者多個(gè)序列,即函數(shù)對(duì)應(yīng)的實(shí)參


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

弄清楚了裝飾器的工作原理:
- 寫一個(gè)高階函數(shù),即參數(shù)是函數(shù),返回的也是函數(shù);上面的例子,傳函數(shù) test 作為實(shí)參,最后返回函數(shù) test ;
- 在利用語(yǔ)法糖@,簡(jiǎn)化賦值操作;
但這樣的代碼是有缺陷:test 函數(shù)直接返回了函數(shù)名,這樣后面就不好調(diào)用了。
改 進(jìn):


到此這篇關(guān)于python 進(jìn)階學(xué)習(xí)之python裝飾器小結(jié)的文章就介紹到這了,更多相關(guān)python 裝飾器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
記一次pyinstaller打包pygame項(xiàng)目為exe的過(guò)程(帶圖片)
這篇文章主要介紹了記一次pyinstaller打包pygame項(xiàng)目為exe的過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Python網(wǎng)頁(yè)正文轉(zhuǎn)換語(yǔ)音文件的操作方法
這篇文章主要介紹了Python網(wǎng)頁(yè)正文轉(zhuǎn)換語(yǔ)音文件的操作方法,需要的朋友可以參考下2018-12-12
關(guān)于Django顯示時(shí)間你應(yīng)該知道的一些問(wèn)題
將Django項(xiàng)目部署到Linux系統(tǒng)上進(jìn)行測(cè)試時(shí),發(fā)現(xiàn)操作記錄的時(shí)間與服務(wù)器的時(shí)間不一致,相差13個(gè)小時(shí)。這主要是因?yàn)闀r(shí)區(qū)的問(wèn)題,下面這篇文章主要總結(jié)介紹了關(guān)于Django顯示時(shí)間你應(yīng)該知道的一些問(wèn)題,需要的朋友可以參考下。2017-12-12
Python 正則表達(dá)式實(shí)現(xiàn)計(jì)算器功能
本篇文章主要介紹了Python 正則表達(dá)式實(shí)現(xiàn)計(jì)算器功能的示例。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-04-04
Python3中內(nèi)置類型bytes和str用法及byte和string之間各種編碼轉(zhuǎn)換 問(wèn)題
這篇文章主要介紹了Python3中內(nèi)置類型bytes和str用法及byte和string之間各種編碼轉(zhuǎn)換問(wèn)題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09

