Python教程-匿名函数

匿名函数
在函数创建过程中,有时我们并不需要显式地定义函数,而是可以直接传入匿名函数来实现相应的功能。这样做不仅省去了为函数命名的麻烦,还能减少代码量。许多编程语言都支持匿名函数的特性。正确地使用匿名函数可以起到画龙点睛的效果,但如果使用不当,可能会适得其反。因此,在日常的编码过程中,我们需要多学习、多观察、多思考。
在Python语言中,我们使用lambda
关键字来创建匿名函数。
所谓匿名函数,即不再使用def
语句的标准形式来定义函数。
lambda
只是一个表达式,而不是一个代码块,因此它的函数体要比使用def
定义的函数简单得多。- 它只能封装有限的逻辑,无法包含复杂的语句块。
lambda
函数拥有自己的命名空间。
匿名函数的一般形式如下:lambda parameters: expression
。
例如:lambda x: x * x
。它相当于下面的函数:
def f(x):
return x * x
关键字lambda表示匿名函数,冒号前面的x表示函数参数,x*x是执行代码。
匿名函数只能有一个表达式,不用也不能写return语句,表达式的结果就是其返回值。 匿名函数没有函数名字,不必担心函数名冲突,节省字义空间。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:
>>> f = lambda x: x * x
>>> f
<function <lambda> at 0x3216fef44>
>>> f(6)
36
也可以把匿名函数作为别的函数的返回值返回。
def add(string, i):
return lambda: int(string) + i