函數是Python內建支持的一種封裝,經過把大段代碼拆成函數,再一層一層的調用函數,就可把複雜任務分解成簡單的任務
這種分解能夠稱之爲面向過程的程序設計
函數就是面向過程的程序設計的基本單元編程
函數式編程,雖也能夠歸結到面向過程的程序設計,但其思想更接近數學計算編程語言
計算機,計算,編程語言
在計算機的層次上,CPU執行的是加減乘除的指令代碼,以及各類條件判斷和跳轉指令,因此,彙編語言是最貼近計算機的語言
在計算的層次上,則指數學意義上的計算,越是抽象的計算,離計算機硬件越遠
對應到編程語言,則
越低級的語言,越貼近計算機,抽象程度低,執行效率高,好比C語言
越高級的語言,越貼近計算,抽象程度高,執行效率低,好比Lisp語言函數式編程
關於函數的反作用
對於純函數,只要輸入是肯定的,輸出就是肯定的,就是一個輸入只能有一種輸出,這種函數稱之爲沒有反作用
對於有些函數,它容許使用變量,因爲函數內部的變量狀態不肯定,一樣一個輸入可能獲得不一樣的輸出,這種函數稱之爲有反作用函數
關於函數式編程
函數式編程就是一種抽象程度很高的編程範式,純粹的函數式編程語言編寫的函數沒有變量,也就是沒有反作用
函數式編程的一個特色就是,容許把函數自己做爲參數傳入另外一個函數,還容許返回一個函數設計
Python與函數式編程
Python對函數式編程提供部分支持
因爲Python容許使用變量,所以Python不是純函數式編程語言數學