函數(shù)
回顧一下函數(shù),函數(shù)就是把固定的邏輯放在一起,方便我們下次使用,不用寫重復的代碼,提升代碼的復用性以及可讀性;一個好的函數(shù),可以只通過函數(shù)名就可以看懂這個過程要做什么,所以當我們有很大一段邏輯代碼的時候,拆成不同的函數(shù),可以大大的提高代碼易讀性。
函數(shù)式編程
函數(shù)式編程,這里多了一個“式”,雖然也可以歸結(jié)到面向過程的程序設計,但其思想更接近數(shù)學計算。函數(shù)式編程的一個特點就是,允許把函數(shù)本身作為參數(shù)傳入另一個函數(shù),還允許返回一個函數(shù)!
Python對函數(shù)式編程提供部分支持。由于Python允許使用變量,因此,Python不是純函數(shù)式編程語言。
函數(shù)作為參數(shù)
Python內(nèi)建的filter()函數(shù)用于過濾序列。 filter()函數(shù)接收一個函數(shù)和一個序列作為參數(shù),filter()把傳入的函數(shù)依次作用于每個元素,然后根據(jù)返回值是True還是False決定保留還是丟棄該元素。
def is_odd(n):
return n % 2 == 1
list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))
# 結(jié)果: [1, 5, 9, 15]
把一個序列中的空字符串刪除的寫法:
def not_empty(s):
return s and s.strip()
list(filter(not_empty, ['A', '', 'B', None, 'C', ' ']))
# 結(jié)果: ['A', 'B', 'C']
可見filter的用法突出一個“篩選”注意到filter()函數(shù)返回的是一個Iterator,也就是一個惰性序列,所以要強迫filter()完成計算結(jié)果,需要用list()函數(shù)獲得所有結(jié)果并返回list。
-
編程
+關(guān)注
關(guān)注
88文章
3674瀏覽量
94715 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4365瀏覽量
63906 -
python
+關(guān)注
關(guān)注
56文章
4822瀏覽量
85895
發(fā)布評論請先 登錄
Golang函數(shù)式編程簡述
前端開發(fā)之函數(shù)式編程實踐

函數(shù)式編程的基本特性
從函數(shù)式編程,性能,測試,編碼規(guī)范談Python
Python函數(shù)使用基礎教程
函數(shù)式編程語言、編程和程序驗證
Python的函數(shù)文件與模塊的程序說明

評論