lambda匿名函数

Posted on 2016-08-22 12:10  Eric.Jiang  阅读(174)  评论(0)    收藏  举报

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函数个人感觉没有什么太大或优点特别明显的用处。

       但总的来说,

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3