python 匿名函數

當咱們在傳入函數時,有些時候,不須要顯式地定義函數,直接傳入匿名函數更方便。函數

在Python中,對匿名函數提供了有限支持。仍是以map()函數爲例,計算f(x)=x2時,除了定義一個f(x)的函數外,還能夠直接傳入匿名函數:ui

>>> map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])
[1, 4, 9, 16, 25, 36, 49, 64, 81]

經過對比能夠看出,匿名函數lambda x: x * x實際上就是:3d

def f(x):
    return x * x

關鍵字lambda表示匿名函數,冒號前面的x表示函數參數。code

匿名函數有個限制,就是隻能有一個表達式,不用寫return,返回值就是該表達式的結果。對象

用匿名函數有個好處,由於函數沒有名字,沒必要擔憂函數名衝突。此外,匿名函數也是一個函數對象,也能夠把匿名函數賦值給一個變量,再利用變量來調用該函數:io

>>> f = lambda x: x * x
>>> f
<function <lambda> at 0x10453d7d0>
>>> f(5)
25

一樣,也能夠把匿名函數做爲返回值返回,好比:function

def build(x, y):
    return lambda: x * x + y * y

小結

Python對匿名函數的支持有限,只有一些簡單的狀況下能夠使用匿名函數。class

相關文章
相關標籤/搜索