Python支持lambda匿名函数,其扩展的BNF表示法是lambda_expr::="lambda"[parameter_list]":"expression,也就是lambda参数序列:表达式。
这是一种便捷的函数定义方式,若翻译成我们熟知的函数形式,会是这个样子:
deflambda(parameter_list):returnexpression
也就是说,Python中的lambda函数是一种可接收多个参数的函数,返回值是一个表达式。
它最大的好处是单行简洁,不需要函数命名与换行缩进。
不得不说,匿名函数有时候是挺好用的,比如下文会介绍到的一些常见用法,它因此受到了不少人的推崇。
但是,匿名函数通常也会造成代码难以阅读,容易被人滥用,再加上Python只提供了对它的“残疾的”支持,所以又有一些观点不建议使用匿名函数。
事实上,Python之父GuidovanRossum就属于“不推荐使用派”,他甚至曾经(年)想要移除lambda,只不过最后妥协了。
出处: