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