函數(shù)
回顧一下函數(shù),函數(shù)就是把固定的邏輯放在一起,方便我們下次使用,不用寫重復(fù)的代碼,提升代碼的復(fù)用性以及可讀性;一個(gè)好的函數(shù),可以只通過函數(shù)名就可以看懂這個(gè)過程要做什么,所以當(dāng)我們有很大一段邏輯代碼的時(shí)候,拆成不同的函數(shù),可以大大的提高代碼易讀性。
函數(shù)式編程
函數(shù)式編程,這里多了一個(gè)“式”,雖然也可以歸結(jié)到面向過程的程序設(shè)計(jì),但其思想更接近數(shù)學(xué)計(jì)算。函數(shù)式編程的一個(gè)特點(diǎn)就是,允許把函數(shù)本身作為參數(shù)傳入另一個(gè)函數(shù),還允許返回一個(gè)函數(shù)!
Python對(duì)函數(shù)式編程提供部分支持。由于Python允許使用變量,因此,Python不是純函數(shù)式編程語言。
函數(shù)作為參數(shù)
Python內(nèi)建的filter()函數(shù)用于過濾序列。 filter()函數(shù)接收一個(gè)函數(shù)和一個(gè)序列作為參數(shù),filter()把傳入的函數(shù)依次作用于每個(gè)元素,然后根據(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]
把一個(gè)序列中的空字符串刪除的寫法:
def not_empty(s):
    return s and s.strip()
list(filter(not_empty, ['A', '', 'B', None, 'C', '  ']))
# 結(jié)果: ['A', 'B', 'C']
可見filter的用法突出一個(gè)“篩選”注意到filter()函數(shù)返回的是一個(gè)Iterator,也就是一個(gè)惰性序列,所以要強(qiáng)迫filter()完成計(jì)算結(jié)果,需要用list()函數(shù)獲得所有結(jié)果并返回list。
- 
                                編程
                                +關(guān)注
關(guān)注
89文章
3705瀏覽量
96514 - 
                                函數(shù)
                                +關(guān)注
關(guān)注
3文章
4403瀏覽量
66599 - 
                                python
                                +關(guān)注
關(guān)注
56文章
4850瀏覽量
89308 
發(fā)布評(píng)論請(qǐng)先 登錄
Golang函數(shù)式編程簡(jiǎn)述
前端開發(fā)之函數(shù)式編程實(shí)踐
    
函數(shù)式編程的基本特性
從函數(shù)式編程,性能,測(cè)試,編碼規(guī)范談Python
Python函數(shù)使用基礎(chǔ)教程
函數(shù)式編程語言、編程和程序驗(yàn)證
Python的函數(shù)文件與模塊的程序說明
    
          
        
        
Python的函數(shù)式編程介紹
                
 
    
           
            
            
                
            
評(píng)論