在以下的文章之中我們來了解一下什麼是python中的函數式程式設計。了解python中函數式程式設計是什麼意思,以及python程式設計函數能應用在什麼地方。
函數式程式設計
函數是Python內建支援的一種封裝,我們透過把大段程式碼拆成函數,透過一層一層的函數調用,就可以把複雜任務分解成簡單的任務,這種分解可以稱之為過程導向的程式設計。函數就是過程導向的程式設計的基本單元。
而函數式程式設計(請注意多了一個「式」字)-Functional Programming,雖然也可以歸結到過程導向的程式設計,但其想法更接近數學計算。
我們首先要搞清楚電腦(Computer)和計算(Compute)的概念。
在電腦的層次上,CPU執行的是加減乘除的指令碼,以及各種條件判斷和跳躍指令,所以,組合語言是最貼近電腦的語言。
而計算則指數學意義上的計算,越是抽象的計算,離電腦硬體越遠。
對應到程式語言,就是越低階的語言,越貼近計算機,抽象程度低,執行效率高,例如C語言;越高階的語言,越貼近計算,抽象程度高,執行效率低,例如Lisp語言。
函數式程式設計的特點:
1. 把計算視為函數而非指令
2. 純函數式程式設計:不需要變量,沒有副作用,測試簡單
3. 支援高階函數,程式碼簡潔
Python 支援的函數式程式設計:
不是純函數式程式設計:允許有變數
支援高階函數:函數也可以作為變數傳入
支援閉包:有了閉包就能回傳函數
有限度地支援匿名函數
函數式程式設計就是一種抽象程度很高的程式設計範式,純粹的函數式程式語言所寫的函數沒有變量,因此,任一個函數,只要輸入是確定的,輸出就是確定的,這種純函數我們稱之為沒有副作用。而允許使用變數的程式設計語言,由於函數內部的變數狀態不確定,同樣的輸入,可能得到不同的輸出,因此,這種函數是有副作用的。
函數式程式設計的一個特點是,允許把函數本身當作參數傳入另一個函數,也允許傳回一個函數!
Python對函數式程式設計提供部分支援。由於Python允許使用變量,因此,Python不是純函數式程式語言
#
以上是python函數式程式設計是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!