官术网_书友最值得收藏!

6.10 匿名函數

所謂匿名,即不再使用def語句這樣的標準形式定義一個函數。Python將使用lambda創建一個匿名函數。

下面定義一個返回參數之和的函數。

    def f(x,y):
    return x+y

用戶的函數只有一個表達式,可以使用lambda運算符來定義這個函數。

    f = lambda x, y: x + y

那么,lambda表達式有什么用處呢?很多人提出了質疑,lambda與普通的函數相比,就是省去了函數名稱而已,同時這樣的匿名函數又不能共享在別的地方調用。

其實,Python中的lambda還是有很多優點的,主要包含如下:

(1)在Python中寫一些執行腳本時,使用lambda可以省去定義函數的過程,讓代碼更加精簡。

(2)對于一些抽象的、不會在其他地方再重復使用的函數,取名字也是一個難題,使用lambda則不需要考慮命名的問題。

(3)在某些時候,使用lambda會讓代碼更容易理解。

當然,匿名函數也有一些規則需要謹記:

(1)若只有一個表達式,則必須有返回值。

(2)可以沒有參數,也可以有一個或多個參數。

(3)不能有return。

lambda語句中,冒號前是參數(可以有多個)用逗號隔開冒號右邊的返回值。lambda語句構建的其實是一個函數對象。

例如,求取x的平方值:

運行結果如圖6-44所示。

圖6-44 運行結果

主站蜘蛛池模板: 崇州市| 灵台县| 渝北区| 鄄城县| 建始县| 清流县| 福鼎市| 通道| 新化县| 临邑县| 中阳县| 荔波县| 鹤岗市| 齐齐哈尔市| 太康县| 依安县| 南乐县| 奎屯市| 常山县| 常德市| 定安县| 南和县| 房山区| 汤原县| 利津县| 苏尼特左旗| 南溪县| 道真| 台中县| 台南县| 昌吉市| 桂阳县| 进贤县| 九江县| 贵定县| 东阿县| 平安县| 东海县| 孟连| 社会| 竹溪县|