美文网首页Python基础
python基础之lambda匿名函数详解

python基础之lambda匿名函数详解

作者: 极客与宽客 | 来源:发表于2019-04-01 18:02 被阅读2次

lambda简介

作为函数,它们也能有参数。一个完整的 lambda"语句"代表了一个表达式,这个表达式的定义体必须和声明放在同一行。语法如下:

lambda [arg1[, arg2, ... argN]]: expression

参数是可选的,如果使用的参数话,参数通常也是表达式的一部分

lambda匿名函数与def区别

相同:lambda 和def它两个的基本用法差不多,参数都是可选,也都会返回对象

不同:1、lambda可以定义一个匿名函数,而def定义的函数必须有一个名字。这应该是lambda与def两者最大的区别。

2、lambda的主体是一个单个的表达式,而不是一个代码块。(lambda's body is a single expression, not a block of statements.),lambda里面的语句相当于def中return中的代码一样。只能是简单的表达式,所以说lambda的能力小于def,在lambda中只能使用简单的语法,不能使用if else while return等语句

备注:它的设计理念为:lambda是一个为编写简单的函数而设计的,而def用来处理更大的任务。(lambda is designed for coding simple functions, and def handles larger tasks.)

为什么要使用lambda?

1、lambda函数主要用来写一些小体量的一次性函数,避免污染环境,同时也能简化代码。

2、lambda起到了一种函数速写的作用,允许在使用的代码内嵌入一个函数的定义。他们完全是可选的(你总是能够使用def来替代它们),但是你仅需要嵌入小段可执行代码的情况下它们会带来一个更简洁的代码结构。

3、lambda使用可以加参数也可以不加参数

4、lambda通常用来编写跳转表(jump table),也就是行为的列表或字典,能够按照需要执行相应的动作。如下段代码所示。

总结

1、lambda只是一个表达式,函数体比def简单很多

2、lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去

3、lambda函数拥有自己的名字空间,且不能访问自有参数列表之外或全局名字空间里的参数

4、 简单单行代码或者一次性的函数可以用lambda函数来书写,可以让代码更简洁。

5、 对于复杂函数或者函数体体量大的函数,最好不要用lambda函数,会增加代码的阅读难度,使代码晦涩难懂。

6、 在非多次调用的函数的情况下,lambda表达式即用既得,提高性能

参考资料:https://baijiahao.baidu.com/s?id=1594710285340462950&wfr=spider&for=pc

相关文章

  • Python之lambda表达式

    ---Python之lambda表达式(创建匿名函数) Python允许使用lambda关键字来创建匿名函数。 先...

  • python基础之lambda匿名函数详解

    lambda简介 作为函数,它们也能有参数。一个完整的 lambda"语句"代表了一个表达式,这个表达式的定义体必...

  • lambda匿名函数

    匿名函数 python 使用 lambda 来创建匿名函数。 lambda只是一个表达式,函数体比def简单很多。...

  • python函数

    匿名函数 python 使用 lambda 来创建匿名函数。 lambda只是一个表达式,函数体比def简单很多。...

  • 13.Python编程:lambda表达式(匿名函数)

    前面学习了Python中的函数,本文学习一下匿名函数。Python 使用 lambda 来创建匿名函数。所谓匿名,...

  • python基础--匿名函数&高阶函数

    lambda表达式返回匿名函数 python使用lambda创建匿名函数,lambda的主题是一个表达式而不是代码...

  • Python匿名函数Lambda

    1.匿名函数介绍 在Python中,通过lambda关键字来定义的函数称为匿名函数;lambda函数能接收任何数量...

  • 05.最后任务---生成照片墙

    学习一个知识python匿名函数(lambda表达式) 参见python基础教程 了解一个函数point 准备 1...

  • python lambda 表达式

    匿名函数python 使用 lambda 来创建匿名函数。lambda只是一个表达式,函数体比def简单很多。la...

  • Scala学习笔记:函数编程&集合

    Functional Programming lambda 匿名函数(至少python是叫lambda)算是FO的...

网友评论

    本文标题:python基础之lambda匿名函数详解

    本文链接:https://www.haomeiwen.com/subject/fkyvpqtx.html