学习python时看到了这个函数:
对里面的lamda表达式产生了疑问。经过一番查找,对lamda表达式理解如下:
lamda看似是表达式,其实是一个函数,冒号前是传入的参数,冒号后是表达式,return将返回它的值。可以用来代替一个简单的函数,减少代码篇幅
例1:
def sum(x,y):
return x+y
相同意义的lamda表达式:
lambda x,y:x+y
例2:
注意:
-
lambda 函数不能包含命令,
-
包含的表达式不能超过一个。
-
lamda表达式还有一个坑:lambda表达式中传入的是自由变量,
在运行时绑定值,而不是定义时就绑定,这跟函数的默认值参数定义是不同的。
例如:
按我们理解函数的思路,a(10)应该为20,而实际为30.这是因为调用a(10)时,x已经被赋值为20
具体参见:添加链接描述