高階函式和lambda函式
阿新 • • 發佈:2020-12-21
一、高階函式
1.高階函式是指把函式作為引數的一種函式。
2.高階函式示例
1 def FunAdd(f,x,y): #定義函式FunAdd 2 return f(x)+f(y) #用傳給f的函式先對x和y分別處理後,再求和並 #返回 3 def Square(x): #定義函式Square 4 return x**2 #返回x的平方 5 def Cube(x): #定義函式Cube 6 return x**3 #返回x的立方 7 print(FunAdd(Square,3,-5)) #呼叫函式FunAdd,計算32+(-5)2 8 print(FunAdd(Cube,3,-5)) #呼叫函式FunAdd,計算33+(-5)3
3.注意:函式不僅可以賦給形參,也可以賦給普通變數。賦值後,即可以用變數名替代函式名完成函式呼叫。
二、lambda函式
1.lambda函式也稱為匿名函式,是一種不使用def定義函式的形式,其作用是能快速定義一個簡單的函式。
lambda函式的函式體只是一個表示式,所以lambda函式通常只能實現比較簡單的功能。
2.格式
lambda [引數1[, 引數2, ..., 引數n]]: 表示式 冒號後面的表示式的計算結果即為該lambda函式的返回值。 3.lambda函式示例1 def FunAdd(f,x,y): #定義函式FunAdd2 return f(x)+f(y) #用傳給f的函式先對x和y分別處理後,再求和並返回 3 print(FunAdd(lambda x:x**2,3,-5)) #呼叫函式FunAdd,計算32+(-5)2 4 print(FunAdd(lambda x:x**3,3,-5)) #呼叫函式FunAdd,計算33+(-5)3
程式碼解析:第3行程式碼中,lambda x:x**2定義了一個lambda函式,其有一個引數x,返回值是x**2(即x的平方);第4行程式碼中,lambda x:x**3定義了另一個lambda函式,其有一個引數x,返回值是x**3(即x的立方)。也可以將lambda函式賦給一個變數,然後通過該變數去呼叫相應的lambda函式。如: