匿名函數(shù):
lambda x: x * x
等價于:
def f(x):
return x * x
關(guān)鍵字 lambda 表示匿名函數(shù)氢伟,冒號前面的 x 表示函數(shù)參數(shù)飞傀。
匿名函數(shù)有個限制颜说,就是只能有一個表達(dá)式注服,不用寫 return, 返回值就是該表達(dá)式的結(jié)果愉老。
用匿名函數(shù)有個好處,因?yàn)楹瘮?shù)沒有名字捌议,不必?fù)?dān)心函數(shù)名沖突粉怕。此外狰贯,匿名函數(shù)也是一個函數(shù)對象,也可以把匿名函數(shù)賦值給一個變量,再利用變量來調(diào)用該函數(shù):
>>> f = lambda x: x * x
>>> f
<function <lambda> at 0x10453d7d0>
>>> f(5)
25
同樣,也可以把匿名函數(shù)作為返回值返回,比如:
def build(x, y):
return lambda: x * x + y * y
Python對匿名函數(shù)的支持有限志珍,只有一些簡單的情況下可以使用匿名函數(shù)旁壮。