美文网首页
python-lamda表达式

python-lamda表达式

作者: MR_Hanjc | 来源:发表于2018-06-20 23:28 被阅读102次

ambda只是一个表达式,函数体比def简单很多。
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。

格式:

lambda [arguments] : expression

例1:

>>> a=lambda x,y:x+y
>>> a(1,2)
3

说明:
将lambda表达式赋值给变量a,之后对a进行传参,1和2,表达式接收到x=1,y=2,进行加法操作,得到最后结果3

例2:

>>> b=lambda x,y:x+y
>>> b(x=1,y=2)
3
>>> b(x=1,z=2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: <lambda>() got an unexpected keyword argument 'z'

说明:
可以看到这里我们进行了指定参数名后进行传参,一样可以达到效果,但是后面我们使用了lambda中不存在得参数,会抛出异常,所以,如果我们需要指定参数名时,一定要和表达式一致

例3:

>>> (lambda x,y:x+y)(1,2)
3

说明:
在这里我们没有将lambda表达式进行赋值给变量,而是直接运行,一样可以得到正确的结果

例4:

>>> (lambda x,y=2:x+y)(x=1)
3
>>> (lambda x,y=2:x+y)(x=1,y=3)
4

说明:
这两个例子演示了,lambda表达式可以给参数设置默认值,并且重置参数值

例5:

>>> def my2(x):
...     return lambda y:x+y
...
>>> d=my2(2)
>>> d(5)
7
>>>

说明:
看看这里发生了什么,首先我们将lambda表达式放在了函数中,并且作为返回值返回,然后,变量d调用函数my2,并且传递了x=2,此时返回了lambda表达式,lambda y:2+y,然后就像例1一样,将y=5传递给表达式,最后达到结果7

相关文章

  • python-lamda表达式

    ambda只是一个表达式,函数体比def简单很多。lambda的主体是一个表达式,而不是一个代码块。仅仅能在lam...

  • Twig表达式

    Twig 表达式分为字面表达式、数学表达式、逻辑表达式、比较表达式、包含表达式、测试表达式、字符串插值表达式及其它...

  • php第五天--基本函数

    for变形格式for (表达式1; 表达式2; 表达式3) {循环体} 表达式1;for (; 表达式2; 表达式...

  • Python推导式(列表推导式、元组推导式、字典推导式和集合推导

    列表表达式 元祖表达式 字典表达式 集合表达式

  • 表达式

    原始表达式 最简单的表达式是“原始表达式”。原始表达式是表达式的最小单位,它们不再包含其他表达式。js中原始表达式...

  • 三元运算符

    基本格式 :(关系表达式) ? 表达式1 : 表达式2;执行流程 :关系表达式为 [真] 返回表达式1关系表达式为...

  • for循环

    for(表达式1;表达式2;表达式3){ //循环操作(输出) } 表达式1:循环变量的声明表达式.(a=...

  • daily -- mysql 基础 分支语句( if and

    if函数 语法:IF(表达式1,表达式2,表达式3); 如果表达式1成立(true),返回表达式2的值;如果表达式...

  • 表达式树

    表达式树中缀表达式转换为后缀表达式后缀表达式总结

  • linux 中 if 语句条件的含义

    文件表达式 整数变量表达式 字符串变量表达式 if [ 表达式1 –o 表达式2 ]

网友评论

      本文标题:python-lamda表达式

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