Python函数式编程——匿名函数lambda
Python虽然不是一种函数式编程语言,但仍然给予了函数式编程很大的重视。接下来的几篇文章我将记录一些Python函数式编程的知识,其中本文要说的是匿名函数lambda。
Python使用lambda关键字创造匿名函数。所谓匿名,意即不再使用def语句这样标准的形式定义一个函数。这种语句的目的是由于性能的原因,在调用时绕过函数的栈分配。其语法是:
lambda [arg1[, arg2, ... argN]]: expression
其中,参数是可选的,如果使用参数的话,参数通常也会在表达式之中出现。
下面举例来说明lambda语句的使用方法(无参数)。
1 2 3 4 5 6 7 8 9 10 11 12 |
# 使用def定义函数的方法 def true(): return True #等价的lambda表达式 >>> lambda :True <function <lambda> at 0x0000000001E42518> # 保留lambda对象到变量中,以便随时调用 >>> true = lambda :True >>> true() True |
下面再举一个带参数的例子。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# 使用def定义的函数 def add( x, y ): return x + y # 使用lambda的表达式 lambda x, y: x + y # lambda也允许有默认值和使用变长参数 lambda x, y = 2: x + y lambda *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') |
是不是看起来代码更简洁,又不失可读性。
本文内容遵从CC3.0版权协议,转载请注明:转自Pythoner
本文链接地址:Python函数式编程——匿名函数lambda
暂无评论