浅析Python匿名函数

我们知道,Python中通过def关键字来定义一个函数,函数的定义形式如下:

def fcn(param):
    pass

fcn代表函数名称,param表示函数的参数。

这样定义函数的方式被称为显示定义函数,可以直接使用函数名进行调用。

fcn(input_param)

除上述显示定义函数外,Python也像其它高级语言一样对匿名函数提供了支持。

匿名函数,顾名思义就是不需要显示的指定函数名称,使用lambda关键字来创建一个匿名函数,语法形式如下:

power = lambda n : n**n
| | | |
① ② ③ ④

① power:代表函数名,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量

② lambda:关键字,类似于def,代表这是一个匿名函数

③ 代表匿名函数的参数

④ 代表匿名函数返回值

匿名函数特点:

匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是表达式的结果。

有些函数在代码中只用一次,而且函数体比较简单,使用匿名函数可以减少代码量,看起来比较"优雅“。

用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数,如:

>>> power = lambda n : n**n
>>> power
<function <lambda> at 0x0000000005015AF8>
>>> power(6)
46656

匿名函数也可以作为函数返回值返回,如:

def build(x, y):
    return lambda: x * x + y * y

匿名函数使用:

匿名函数主要和其他函数联合使用,比如map函数一起使用

map函数

map函数接收两个参数,一个是函数,一个是可迭代对象Iterable,map函数将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

示例如下:

>>> L = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> lam = map(lambda x: x * x, L)
>>> lam
<map object at 0x00000000049AF148>
>>> list(lam)
[1, 4, 9, 16, 25, 36, 49, 64, 81]
原文地址:https://www.cnblogs.com/053179hu/p/14173394.html