1.python中的匿名函数的格式
lambda arg1,arg2...,argN:expression (lambda关键字后,冒号":"前是参数,多个参数用逗号","隔开,没有参数也要写上冒号":",冒号后是返回值)
它不像 def 声明的函数那样有固定的函数名称,也没有return声明的返回值。而是是用一个lambda表达式的形式,声明了一个函数对象。声明时既没有保存也没有调用它,随时都会被回收。当需要用到它时,再将它赋值给一个变量调用。如下:
print lambda x,y:x*10+y
s = lambda x,y:x*10+y
print s(1,2)
执行结果:<function <lambda> at 0x02E3D7B0> lambda本身的返回值是一个函数对象
12
2.lambda函数和def函数的区别
2.1 python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而def则会把函数对象赋值给一个变量即函数名。
2.2 lambda它只是一个表达式,而def则是一个语句。lambda表达式运行起来像一个函数,当被调用时创建一个框架对象。
3.lambda函数的用途和好处
3.1 对于简单的单行函数,使用lambda可以省去定义函数的过程,让代码更加精简。
3.2 在非多次调用的函数的情况下,lambda表达式即用既得,能提高性能。
3.3 lambda函数没有函数名,所以不用担心函数名冲突
但总的来说,python对于lamdba函数的支持比较有限,lambda函数个人感觉没有什么太大或优点特别明显的用处。
但总的来说,