初學__Python——Python 最簡單的函數—用 lambda 聲明函數

用 lambda 表達式來聲明函數,是Python中一類比較特殊的聲明函數的方式,lambda 來源於 LISP 語言,使用 lambda 可以聲明一個匿名函數。所謂匿名函數是指所聲明的函數沒有函數名,lambda 表達式就是一個簡單的函數。使用 lambda 聲明的函數可以返回一個值,在調用函數時,直接使用 lambda 表達式的返回值。

lambda 參數列表:表達式

lambda函數有如下特性:

  • lambda函數是匿名的:所謂匿名函數,通俗地說就是沒有名字的函數。lambda函數沒有名字。
  • lambda函數有輸入和輸出:輸入是傳入到參數列表argument_list的值,輸出是根據表達式expression計算得到的值。
  • lambda函數一般功能簡單:單行expression決定了lambda函數不可能完成複雜的邏輯,只能完成非常簡單的功能。由於其實現的功能一目瞭然,甚至不需要專門的名字來說明

示例:使用 lambda 定義函數並調用

fun = lambda x: x * x - x  # 使用 lambda 定義一個函數,返回函數地址
print(fun(3))  # 輸出調用 lambda 定義的函數
print(fun)  # 輸出函數返回值
# <function <lambda> at 0x02E617C8> :fun 實際指向 lambda 定義的函數地址

lambda 適用於定義小型函數。與 def 聲明的函數不同,使用 lambda 聲明的函數,在函數中僅能包含單一的參數表達式,而不能包含其他的語句,在 lambda 中也可以調用其他的函數。

def show():  # 使用 def 聲明 show 函數
    print('lambda')
f = lambda: show()  # 在 lambda 中調用 show 函數
f()  # 調用使用 lambda 生成的函數

def shown(n):  # 使用 def 聲明 shown 函數
    print('lambda' * n)
fn = lambda x: shown(x)  # 在 lambda 中向 shown 函數傳遞值
fn(2)  # 調用 lambda 生成的函數

def usereturn(x):  # 使用 def 聲明 usereturn 函數
    return x * 2
fr = lambda x: usereturn(x) * x  # 在 lambda 函數中使用 usereturn 函數的返回值
print(fr(3))  # 輸出調用使用 lambda 生成的函數生成的值
fun = lambda x: print(x)  # 在 Python3.7 中可以使用 print 語句
fun(3)

注:不能在 lambda 表達式中使用其他語句

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章