Python的lambda


记得很久以前就买了Python的书,但是翻过几页之后就被放在了一旁。直到这次搬家整理的时候这本书才重建天日。不过为什么我在学习Ruby的同时又开始看Python的教程呢? 或许是因为打赌的关系,又或许是因为别的什么原因,我不记得了。
在看Python的教程的时候,发现lambda可以完成很多任务。它到底是一个什么样的东西呢?在Google中搜索,对lambda有很多种称呼,比如函数,运算符,方式,关键字等等。一般来讲,lambda的作用是用来定义一个小的函数,这个和def不同。据说Lisp语言也有这样的功能,不过在我之前接触到的有限的语言中没有这样的东西。
lambda很灵活,可以用在任何需要函数的地方:
>>>def f(x):
… return x*2

>>> f(2)
4
定义一个函数f(x),f(x)=x*2. 用lambda来表达就是:
>>> f=lambda x: x*2
>>> f(2)
4
这个函数没有函数名,lambda的结果被赋值给变量f调用。
不过这个lambda在我这样的新手阅读代码的时候实在有些费力,每次看到都要反映一下才能明白过来是怎么一个函数。不过据说这个函数在将来会被去除,我觉得,虽然这是一个很方便的方法,但是移除这个lambda也不一定是一件不好的事情。