python基础 - lambda关键字

来源:互联网 发布:cygwin 连接linux 编辑:程序博客网 时间:2024/06/08 07:57
Python中的lambda关键字可以理解为:其功能类似于函数指针。

lambda的官方翻译是匿名函数,这是相对与正常的函数来说的,举例说明:

定义一个正常的函数,实现增1运算:

[python] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. def plus1(x):  
  2.     return x+1  

上面的语句实现了:
1. 定义了一个函数,函数名叫:plus1
2. 此函数有一个参数

对应的匿名函数语句写作:

[python] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. lambda x:x+1  

注意,这是一个表达式,所以他实际上是做不了任何事情的。。。


那么我们如果想调用函数来实现增1运算,分别用正常函数和匿名函数的实现举例如下:

实名函数实现:

[python] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. def plus1(x):  
  2.     return x+1  
  3.   
  4. a = 0  
  5. a = plus1(a)  
  6. print a  

匿名函数实现:

[python] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. func = lambda x:x+1  
  2. a = 0  
  3. a = func(a)  
  4. print a  

结论,匿名函数的用法,既像C语言中的宏定义,又C语言中的函数指针


将匿名函数和实名函数结合起来使用就更加好玩了,比如:

[python] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. def plus1(x):  
  2.     return x+1  
  3.   
  4. func = lambda x:plus1(x)  
  5. a = 0  
  6. a = func(a)  
  7. print a  
你看,这不就是函数指针的用法了吗?


C语言有了函数指针就变得灵活无比,同样,将lambda用上之后,python也可以变得同样的灵活。

0 0