python基础 - lambda关键字

Python中的lambda关键字可以理解为:其功能类似于函数指针。

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

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

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

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

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

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

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


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

实名函数实现:

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

匿名函数实现:

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

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


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

[python]  view plain copy print ? 在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也可以变得同样的灵活。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值