-
map
map() 函數(shù)接收兩個參數(shù),一個是函數(shù),一個是 Iterable,map 將傳入的函數(shù)依次作用到序列的每個元素,并把結(jié)果作為新的 Iterator 返回。
image.png -
reduce
reduce 把一個函數(shù)作用在一個序列 [x1, x2, x3,...] 上,這個函數(shù)必須接收兩個參數(shù), reduce 把結(jié)果繼續(xù)和序列的下一個元素做累積計算。
image.png
字符串轉(zhuǎn)換成整數(shù):
image.png -
filter
filter()函數(shù)用于過濾序列。filter() 也接收一個函數(shù)和一個序列。和 map() 不同的是 filter() 把傳入的函數(shù)依次作用于每個元素,然后根據(jù)返回值是 True 還是 False 決定保留還是丟棄該元素。
image.png -
sorted
Python內(nèi)置的sorted()函數(shù)可以對list進(jìn)行排序,還可以接收一個key函數(shù)來實現(xiàn)自定義的排序,key指定的函數(shù)將作用于list的每個元素上,并根據(jù)key函數(shù)返回的結(jié)果進(jìn)行排序:
image.png -
閉包
image.png
調(diào)用lazy_sum()時,返回的并不是求和結(jié)果,而是求和函數(shù):
image.png
調(diào)用函數(shù)f時,才真正計算求和結(jié)果:
image.png
在函數(shù) lazy_sum 中又定義了函數(shù) sum ,并且,內(nèi)部函數(shù) sum 可以引用外部函數(shù) lazy_sum 的參數(shù)和局部變量,當(dāng) lazy_sum 返回函數(shù) sum 時,相關(guān)參數(shù)和變量都保存在返回的函數(shù)中,這種稱為“閉包(Closure)”。
-
匿名函數(shù):lambda
匿名函數(shù)有個限制,就是只能有一個表達(dá)式,不用寫 return ,返回值就是該表達(dá)式的結(jié)果。
image.png -
裝飾器
在代碼運行期間動態(tài)增加功能的方式,稱之為“裝飾器”(Decorator)。裝飾器接受一個函數(shù)作為參數(shù),并返回一個函數(shù)。定義時需要借助Python的@語法:
image.png
把@log放到now()函數(shù)的定義處,相當(dāng)于執(zhí)行了語句:
image.png
由于 log() 是一個decorator,返回一個函數(shù),所以,原來的 now() 函數(shù)仍然存在,只是現(xiàn)在同名的 now 變量指向了新的函數(shù),于是調(diào)用 now() 將執(zhí)行新函數(shù),即在 log() 函數(shù)中返回的 wrapper() 函數(shù)。wrapper() 函數(shù)的參數(shù)定義是 (*args, **kw) ,因此, wrapper() 函數(shù)可以接受任意參數(shù)的調(diào)用。在 wrapper() 函數(shù)內(nèi),首先打印日志,再緊接著調(diào)用原始函數(shù)。
一個完整的decorator的寫法如下:
image.png
或者針對帶參數(shù)的decorator:
image.png -
偏函數(shù)
functools.partial 的作用就是,把一個函數(shù)的某些參數(shù)給固定住(也就是設(shè)置默認(rèn)值),返回一個新的函數(shù),調(diào)用這個新函數(shù)會更簡單。
image.png
Python基礎(chǔ)學(xué)習(xí):高階函數(shù)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 直接上正文 函數(shù)是Python內(nèi)建支持的一種封裝,我們通過把大段代碼拆成函數(shù),通過一層一層的函數(shù)調(diào)用,就可以把復(fù)雜...
- 文章來源 基本是拷貝的內(nèi)容,目的是為了將知識點整理在一起。除了一個小結(jié)(裝飾器部分)提供了我自己的解法,其余基本沒...
- 函數(shù)式編程就是一種抽象程度很高的編程范式,純粹的函數(shù)式編程語言編寫的函數(shù)沒有變量,因此,任意一個函數(shù),只要輸入是確...
- 要點: 函數(shù)式編程:注意不是“函數(shù)編程”,多了一個“式” 模塊:如何使用模塊 面向?qū)ο缶幊蹋好嫦驅(qū)ο蟮母拍?、屬性?..













