Python 3.7从入门到精通(视频教学版)
上QQ阅读APP看书,第一时间看更新

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 运行结果