lambda只是一個表達式,函數體比def簡單很多。 lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。 lambda表達式是起到一個函數速寫的作用。允許在代碼內嵌入一個函數的定義。 如下例子: 定義了一個lambda表達式,求三個數的和。 再看一個例
lambda只是一個表達式,函數體比def簡單很多。
lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。
lambda表達式是起到一個函數速寫的作用。允許在代碼內嵌入一個函數的定義。
如下例子:
定義了一個lambda表達式,求三個數的和。
再看一個例子:
用lambda表達式求n的階乘。
------------------------------
lambda表達式也可以用在def函數中。
看例子:
這裡定義了一個action函數,返回了一個lambda表達式。其中lambda表達式獲取到了上層def作用域的變數名x的值。
a是action函數的返回值,a(22),即是調用了action返回的lambda表達式。
這裡也可以把def直接寫成lambda形式。如下