Python中的lambda关键字可以理解为:其功能类似于函数指针。
lambda的官方翻译是匿名函数,这是相对与正常的函数来说的,举例说明:
定义一个正常的函数,实现增1运算:
- def plus1(x):
- return x+1
上面的语句实现了:
1. 定义了一个函数,函数名叫:plus1
2. 此函数有一个参数
对应的匿名函数语句写作:
- lambda x:x+1
注意,这是一个表达式,所以他实际上是做不了任何事情的。。。
那么我们如果想调用函数来实现增1运算,分别用正常函数和匿名函数的实现举例如下:
实名函数实现:
- def plus1(x):
- return x+1
- a = 0
- a = plus1(a)
- print a
匿名函数实现:
- func = lambda x:x+1
- a = 0
- a = func(a)
- print a
结论, 匿名函数的用法,既像C语言中的宏定义,又像C语言中的函数指针 。
将匿名函数和实名函数结合起来使用就更加好玩了,比如:
- def plus1(x):
- return x+1
- func = lambda x:plus1(x)
- a = 0
- a = func(a)
- print a
C语言有了函数指针就变得灵活无比,同样,将lambda用上之后,python也可以变得同样的灵活。