1、函式名可以當做引數傳遞
2、返回值可以是函式名
尾呼叫由於是函式的最後一步操作,不需要保留外層函式的呼叫記錄,因為呼叫位置、內部變數等資訊不會再用到了,只需要直接用內層函式的呼叫記錄,取代外層函式的呼叫記錄就可以了。
滿足以下兩個特性的任意乙個即為高階函式:
1、函式的傳入引數是乙個函式名
2、函式的返回值是乙個函式名
map(xx;xx):第乙個位置寫處理邏輯,第二個位置為可迭代物件。
filter(xx;xx):第乙個位置寫處理邏輯,第二個位置為可迭代物件。
先導入functools模組:
from functools import reduce
reduce(xx;xx;xx):第乙個位置寫處理邏輯,第二個位置為可迭代物件。第三個位置為初始值,預設不填
name = 「你好」
例如:print(byte(name,encoding=「utf—8」))
解碼:例如:print(byte(name,encoding=「utf—8」).decode(「utf—8」))特性一:不論傳入的引數有多長,最後得出的結果長度都是固定的。
特性二:不能根據雜湊值反推出原先的引數
print(isinstance(1,int)) 結果為:true
print(isinstance(「abc」,str)) 結果為:true
print(globals()):列印所有全域性變數
print(locals()):列印本層的區域性變數
舉例子:
dic=
print(max(dic)) // 預設比較的是字典的key
如果要對應value,則:
dic=
print(max(dic.values)) //此時顯示的只有values
如果想要顯示key跟value,比較的是value,則:
dic=
print(zip(max(dic.values(),dic.keys())))
例如: print(list(zip((『a』,『b』,),(1,2))))
顯示:[(『a』,1),(『b』,2)]例如:
print(pow(2,3)) //2的3次方
print(pow(2,3,3)) //2的3次方對3取餘
round(3.5) //四捨五入,輸出為4
如果是import匯入,則:
import test
test.xx()
如果是』test』,則:
module_name=『test』
m=import(module_name)
m.xx()
Python 函式式程式設計 高階函式
functional programming,函式式程式設計。python對函式式程式設計提供部分支援。對於純函式程式設計,對任一函式,只要輸入是確定的,輸出就是確定的,可稱之為無 我們知道函式的計算結果可以賦值給變數,例如x abs 5 同理,變數也可以指向函式,例如f abs。如果乙個變數指向了...
Python函式式程式設計 高階函式
高階函式 1.實參是乙個函式名 2.函式的返回值是乙個函式 函式本身也可以賦值給變數,變數也可以指向函式 f abs print f 10 傳遞的引數包括函式名 deffun x,y,f return f x f y print fun 10 23,abs map 函式接收兩個引數,乙個是函式,乙個...
python函式式程式設計 高階函式 偏函式
三大特性 immutable data不可變資料 first class functions函式像變數一樣使用 尾遞迴優化 每次遞迴都重用stack 好處 parallelization並行 lazy evaluation惰性求值 determinism 確定性 函式式程式設計 map reduce...