python 匿名函数与lambda

来源:互联网 发布:购物秒杀软件 编辑:程序博客网 时间:2024/05/17 22:14

Python虽然不是一种函数式编程语言,但仍然给予了函数式编程很大的重视。本文要说的是匿名函数lambda。
这种语句的目的是由于性能的原因,在调用时绕过函数的栈分配。其语法是:

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

其中,参数是可选的,如果使用参数的话,参数通常也会在表达式之中出现。

下面举例来说明lambda语句的使用方法(无参数)。

# 使用def定义函数的方法def true():    return True#等价的lambda表达式>>> lambda :True<function <lambda> at 0x0000000001E42518># 保留lambda对象到变量中,以便随时调用>>> true = lambda :True>>> true()True

下面再举一个带参数的例子。

# 使用def定义的函数def add( x, y ):    return x + y# 使用lambda的表达式lambda x, y: x + y# lambda也允许有默认值和使用变长参数lambda x, y = 2: x + ylambda *z: z# 调用lambda函数>>> a = lambda x, y: x + y>>> a( 1, 3 )4>>> b = lambda x, y=2: x + y>>> b( 1 )3>>> b( 1, 3 )4>>> c = lambda *z: z>>> c( 10, 'test')(10, 'test')
0 0
原创粉丝点击