lambda是python中一类比较特殊的声明函数的方式,但是因为lambda对于实现简单功能的函数十分有帮助,所以在编码的过程中使用得也非常多。lambda源于LISP语言,其语法形式如下:
lambda params:expr
其中params相当于声明函数时的参数列表中用逗号分隔的参数,expr是函数要返回值的表达式,而表达式中不能包含其他语句,也可以返回元组(要用括号),还允许在表达式中调用其他的函数。
示例:
>>> import math
>>> s=lambda x1,y1,x2,y2:math.sqrt((x1-x2)**2+(y1-y2)**2)
>>> s(1,1,0,0)
1.4142135623730951
示例代码中声明了一个lambda匿名函数s,函数s的功能是用来求两点坐标的距离。
可以发现仅用一行代码就定义了一个简单功能的函数,lambda一般比较适用于定义以下类型的函数:
- 简单匿名函数 写起来快速而简单,省代码
- 不复用的函数 在有些时候需要一个简单抽象的功能,又不想单独定义一个匿名函数
- 为了代码清晰 在有些地方使用它,代码更清晰易懂