函數(shù)是Python內(nèi)建支持的一種封裝,我們通過把大段代碼拆成函數(shù),通過一層一層的函數(shù)調(diào)用,就可以把復(fù)雜任務(wù)分解成簡單的任務(wù),這種分解可以稱之為面向過程的程序設(shè)計。函數(shù)就是面向過程的程序設(shè)計的基本單元。
而函數(shù)式編程(請注意多了一個“式”字)——FunctionalProgramming,雖然也可以歸結(jié)到面向過程的程序設(shè)計,但其思想更接近數(shù)學(xué)計算。
我們首先要搞明白計算機(jī)(Computer)和計算(Compute)的概念。
在計算機(jī)的層次上,CPU執(zhí)行的是加減乘除的指令代碼,以及各種條件判斷和跳轉(zhuǎn)指令,所以,匯編語言是最貼近計算機(jī)的語言。
而計算則指數(shù)學(xué)意義上的計算,越是抽象的計算,離計算機(jī)硬件越遠(yuǎn)。
對應(yīng)到編程語言,就是越低級的語言,越貼近計算機(jī),抽象程度低,執(zhí)行效率高,比如C語言;越高級的語言,越貼近計算,抽象程度高,執(zhí)行效率低,比如Lisp語言。
函數(shù)式編程就是一種抽象程度很高的編程范式,純粹的函數(shù)式編程語言編寫的函數(shù)沒有變量,因此,任意一個函數(shù),只要輸入是確定的,輸出就是確定的,這種純函數(shù)我們稱之為沒有副作用。而允許使用變量的程序設(shè)計語言,由于函數(shù)內(nèi)部的變量狀態(tài)不確定,同樣的輸入,可能得到不同的輸出,因此,這種函數(shù)是有副作用的。
函數(shù)式編程的一個特點(diǎn)就是,允許把函數(shù)本身作為參數(shù)傳入另一個函數(shù),還允許返回一個函數(shù)!
Python對函數(shù)式編程提供部分支持。由于Python允許使用變量,因此,Python不是純函數(shù)式編程語言。
以上內(nèi)容為大家介紹了python培訓(xùn)之python是函數(shù)式編程嗎?,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。