高階函數(shù):
變量可以指向函數(shù)
abs(-10):這是函數(shù)調(diào)用
abs這是函數(shù)本身,也是對(duì)象
>>>abs
f這是變量
f=abs函數(shù)本身可以賦值給變量
>>>f
f(-10)此時(shí)a具有abs函數(shù)的功能
結(jié)論:
(1)函數(shù)本身也可以賦值給變量,即:變量可以指向函數(shù)。
(2)凡是輸出是尖括號(hào)的,則表示這是一個(gè)對(duì)象,都會(huì)在內(nèi)存里面占用內(nèi)存空間
函數(shù)名也是變量
注:由于abs函數(shù)實(shí)際上是定義在import builtins模塊中的,所以要讓修改abs變量的指向在其它模塊也生效,要用import builtins; builtins.abs = 10。
傳入函數(shù)
既然變量可以指向函數(shù),函數(shù)的參數(shù)能接收變量,那么一個(gè)函數(shù)就可以接收另一個(gè)函數(shù)作為參數(shù),這種函數(shù)就稱(chēng)之為高階函數(shù)。(說(shuō)白了就是一個(gè)函數(shù)有另一個(gè)函數(shù)作為參數(shù))
把函數(shù)作為參數(shù)傳入,這樣的函數(shù)稱(chēng)為高階函數(shù),函數(shù)式編程就是指這種高度抽象的編程范式。