学习笔记36lambda是单表达式函数

Posted SAP剑客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记36lambda是单表达式函数相关的知识,希望对你有一定的参考价值。

lambda是单表达式函数

一、lambda的定义

Python中的lambda关键字可用来快速声明小型匿名函数。lambda函数的行为与使用def关键字声明的常规函数一样,可以用于所有需要函数对象的地方。

比如两个数的加减,就可以如下定义:

 

那么lambda就比def声明的函数少写了几个字符嘛?

其实从语法上来讲表达式位于lambda内部,lambda不需要先将函数对象和名称绑定,只需要在lambda中创建一个想要执行的表达式,然后像普通函数那样立即调用即可。

所以上面的例子也可以这样实现:

 

lamdba和普通函数还有一点不同,lambda函数只能含有一个表达式,不能使用语句或注解,当然也不能使用返回语句。那么如何从lambda返回值呢?执行lambda函数时会计算其中的表达式,然后自动返回表达式的结果,所以总会有一个隐式的返回表达式,因此lambda函数也称为单表达式函数

二、lambda的使用场景

因为lambda是匿名的,所以不需要事先分配一个名字,因此,lambda能方便灵活地快速定义。比如在对可迭代对象进行排序时,就可以使用lambda表达式定义简短的key函数。

 

lambda与普通嵌套函数一样,可以像词法闭包那样工作。比如下面的例子,即使n在adder()函数中定义,但在lambda中仍可以访问。

三、不要过度使用lambda

避免使代码变得难以理解。

 

 

 

 

以上是关于学习笔记36lambda是单表达式函数的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记之三lambda表达式用法小结

kotlin学习笔记之Lambda表达式

Java8学习笔记 - 在哪里可以使用Lambda表达式 + 什么是函数式接口

Java8学习笔记 - 在哪里可以使用Lambda表达式 + 什么是函数式接口

Java学习笔记之 Lambda表达式

Java学习笔记3.9.2 Lambda表达式 - 函数式接口