奇妙的lambda函数

以简洁著称的Python,在函数的使用上提供了一种简洁的方式,一行小函数,即lambda函数。我更喜欢叫表达式函数,因为lambda函数体本身就是一个表达式。

其实lambda函数并非Python首创,在其他的编程语言中也有类似的函数定义方式。从个人观点来看,C/C++语言中的宏函数,也是一种lambda函数,只不过lambda函数进一步精简了,要求函数体内只能有一条语句(一个表达式)。

一、定义lambda函数

lambda函数的定义虽然简单,但它也是一个函数啊,麻雀虽小五脏俱全。先来看看lambda函数的语法:

lambda :

lambda函数的定义主要有以下几个注意点:

1. 以lambda关键字开始。

2. lambda关键字后跟参数变量。

3. 以“:”标示函数体。

4. 函数体中只包含一条表达式。

5. 返回结果为函数。

在实际使用中,可以根据需要编写复杂的lambda函数。

(一)不带参数的lambda函数

(二)带一个参数的lambda函数

(三)带两个参数的lambda函数

(四)带变长参数的lambda函数

(五)在lambda函数中使用列表推导式

二、怎么用lambda函数

lambda函数的优点很明显:代码简练,使用灵活。相应的缺点也很突出:

1. 语法生僻;

2. 难以添加有效的注释、说明;

3. 难以理解,可读性差。

从软件工程,提高代码可维护性的角度出发,通常情况下不推荐使用lambda函数。但是存在即是合理的,既然有了lambda函数,则必然有其需要的场合。推荐在下列场景中使用lambda函数:

1. 所要做的操作不值得编写一个函数,但是这样的操作还需要在多处使用。

2. 需要一个表达式供多个模块使用,且团队内的其他人都同意使用lambda函数。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181106G13MWY00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励