Python lambda

一 lambda函数的定义

lambda表达式格式:

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

Python用lambda关键字创建匿名函数。(匿名是因为不需要以标准的方式来声明,比如说,使用def语句)

在看lambda的例子之前,先复习下单行语句:

def true():
    return True
Python中单行函数可以和标题写在同一行。下面重写true()函数,以使其看起来像如下的东西:

def true(): return True
true()函数,使用lambda的等价表达式(没有参数,返回一个true)为:

lambda :True 

二 lambda函数的调用
true()函数的用法很简单,即true()。但lambda不是这样。

若是直接用"lambda : True",那该函数就只是进行无目的服务,正如:


>>> lambda:True
<function <lambda> at 0x0000020DDCCB7510>
>>> lambda:True
<function <lambda> at 0x0000020DDCCC0840>

在上面的每个例子中,只是简单地用lambda创建了一个函数(对象),但是既没有在任何地方保存它,也没有调用它。因为没有引用保存下来,所以被垃圾回收掉。

为了保留住这个对象,需要将其保存到一个变量中,以后可以随时用。如下:

>>> true = lambda : True
>>> true()
True

三 lambda实践
设计一个带两个数字或字符串参数,返回数字之和或者已拼接的字符串的函数。

默认以及可变的参数也是允许的,如下例所示:

def Add2(x , y = 2) : return x + y lambda x , y = 2 : x + y
def showAllAsTuple(*z) :return z lambda *z : z
使用演示:

>>> a = lambda x,y=2:x+y
>>> a(3)
5
>>> a(3,5)
8
>>> a(0)
2
>>> a(0,9)
9
>>> b = lambda *z : z
>>> b(23,'zyx')
(23, 'zyx')
>>> b(35)
(35,)
lambda表达式运作起来就像一个函数,当被调用时,创建一个框架对象。

参考《Python核心编程(第二版)》

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张之海

若有帮助,客官打赏一分吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值