函式與函式式的區別:
函式是面向程式的基本單元,函式式更接近於數學計算
計算與計算機的區別:
計算機層次上,cpu執行的是**指令,以及條件判斷和邏輯執行,所以組合語言是最接近與計算機的語言
計算,指的是數學上的意義,越是抽象的計算,離計算機越遠
所以對應到計算機上,就是越接近計算機的語言,抽象程度越低,執行效率越高,越貼近計算,抽象程度越高,執行效率越低
函式式是一種抽象程度很高的正規化,特點就是允許函式本身作為引數傳入另乙個函式,還允許返回乙個函式,純函式式程式設計是沒有變數的,因此任意乙個函式只要輸入是確定的,它的輸出就是確定的,這種純函式稱為沒有***的
python對函式式程式設計提供部分支援,由於python允許使用變數(變數是多變的,由於函式變數內部狀態不確定,因此同樣的輸入可能有不同的輸出,這種函式稱為有***的),所以不是純函式式程式語言
函式本身可以賦值給變數
#python 內建函式abs 取絕對值
print(abs(-10))
f= abs
print(f(-20))
乙個函式接受另乙個函式作為引數,則此函式稱為高階函式
#定義乙個add函式
def add(x, y, a):
return a(x) + a(y)
定義乙個取絕對值的函式
def f(x):
if x < 0:
return -x
else:
return x
把函式f本身賦值給變數a
print(add(-10, 20, f))
結果:30 python 函式高階 python 函式高階
形參角度 萬能引數 動態接收位置引數 args 動態接收關鍵字引數 kwargs 的魔性用法 函式定義時 代表聚合。他將所有的位置引數 聚合成乙個元組,賦值給了args 函式定義時 將所有的關鍵字引數聚合成乙個字典中,將這個字典賦給了 kwargs 和 在函式的呼叫時 代表打散 僅限關鍵字引數 de...
Python高階 函式高階
閉包 closure 常規函式中可以在函式的引數中新增引數的預設值來簡化函式的操作,偏函式也可以做到這一點,而且會更加的方便管理函式的操作。通過內建模組functools的partial進行定義和處理 語法結構 新函式名稱 functools.partial 函式名稱,預設賦值引數 例如 全域性函式...
python 函式 高階函式
filter 函式是 python 內建的另乙個有用的高階函式,filter 函式接收乙個函式 f 和乙個list,這個函式 f 的作用是對每個元素進行判斷,返回 true或 false,filter 根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。例如判斷奇偶數 def...