zoukankan      html  css  js  c++  java
  • python——lambda

    一lambda函数基础

    1.lambda函数为匿名函数,即没有具体的函数名,而def函数创建的函数有函数名。

    >>> def foo(): return 'test' #命名为foo的函数

    >>> lambda:'test' #用lambda关键字创建,等同于上面的函数

    <function <lambda> at 0x0000000002FC18C8>

    上面lambda函数创建的一个函数对象,并没有保存或调用它,随时会被收回,下面我们保存并调用:

    >>> a=lambda:'test'
    >>> a()

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

    lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值。lambda语句构建的其实是一个函数对象。

    2.无参数与有参数情况

    无参数即冒号前面没有,如上述例子

    有参数的情况:

    >>> def add(x,y): return x+y

    >>> add2=lambda x,y:x+y
    >>> add(2,2)
    4
    >>> add2(2,2)
    4
    >>> def sum1(x,y=10):return x+y

    >>> sum2=lambda x,y=10:x+y
    >>> sum1(2)
    12
    >>> sum2(2)
    12
    >>> sum2(1,100)
    101

     三、不同之处

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

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

    lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。

    lambda也可以出现在def函数中:

    >>> def action(x):
    return lambda y:x+y

    >>> a=action(2)
    >>> a(22)
    24

    这里定义了一个action函数,返回了一个lambda表达式。其中lambda表达式获取到了上层def作用域的变量名x的值。

    a是action函数的返回值,a(22),即是调用了action返回的lambda表达式。

  • 相关阅读:
    Python Flask数据库连接池
    Python Flask 配置文件
    Flask 通过扩展来实现登录验证
    Flask 的系统学习
    Python Flask装饰器登录验证
    Django 批量导入文件
    fedora25的免密码rsync服务配置
    linux强制拷贝避免输入yes方法
    linux系统web站点设置-http基础设置
    rsync用法详细解释
  • 原文地址:https://www.cnblogs.com/moady/p/5732071.html
Copyright © 2011-2022 走看看