Python基礎程式設計(十六)——函式4

止步聽風發表於2020-12-17

本篇文章主要是對python學習時的一些總結,作為學習筆記記錄。

之前介紹了關於函式的基本結構,引數傳遞時的裝包和解包,內部函式,閉包,裝飾器等內容,本篇文章主要介紹匿名函式和遞迴函式等。

匿名函式

類似與C/C++中的匿名函式,python中借用lambda來建立匿名函式。由lambda表示式構建的函式即為匿名函式。

  • lambda只是一個表示式,函式體定義和結構較def定義的函式簡單
  • lambda的主體是一個表示式,具有一定的制式,只能在其表示式的邏輯中實現有限的功能
  • lambda擁有自己的名稱空間,不能訪問自身空間之外或者全域性名稱空間中的引數
  • 雖然lambda只能寫一行,但是不同於C/C++中的行內函數,C/C++中的行內函數是為了呼叫小型函式時不佔用棧記憶體提高執行效率

語法

lambda [arg1 [,arg2,.....argn]]:expression

 上述語法中,arg說明的匿名函式的形參,expression說明的是匿名函式的函式體。

f = lambda x,y:x + y

print(f(1,2))

結果為:

3

遞迴函式

遞迴函式是指在滿足某些條件的情況下重複呼叫自身的函式。

def fab(n):
    if(n < 2):
        return 1
    else:
        return n + fab(n - 1)
    
print(fab(5))

上面程式中1~5的和為:

15

相關文章