以简洁著称的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函数。
领取专属 10元无门槛券
私享最新 技术干货