匿名函数

在函数创建过程中,有时我们并不需要显式地定义函数,而是可以直接传入匿名函数来实现相应的功能。这样做不仅省去了为函数命名的麻烦,还能减少代码量。许多编程语言都支持匿名函数的特性。正确地使用匿名函数可以起到画龙点睛的效果,但如果使用不当,可能会适得其反。因此,在日常的编码过程中,我们需要多学习、多观察、多思考。

在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

标签: python, python下载, Python教程, Python技术, Python学习, Python学习教程, Python语言, Python开发, Python入门教程, Python进阶教程, Python高级教程, Python面试题, Python笔试题, Python编程思想