学习笔记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是单表达式函数的主要内容,如果未能解决你的问题,请参考以下文章
Java8学习笔记 - 在哪里可以使用Lambda表达式 + 什么是函数式接口