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也可以变得同样的灵活。