0
点赞
收藏
分享

微信扫一扫

Python 匿名函数


匿名函数,顾名思义,就是指一个没有名称的函数。

Python 匿名函数_函数定义

在 Python 中,常规函数使用 def 关键字定义,但​​匿名函数使用 lambda 关键字定义。​​​正因如此,​​匿名函数也被称为 lambda 函数。​

1

语法规则

相比常规函数,lambda 函数的语法会简单很多:

lambda argument(s): expression

  • lambda:定义 lambda 函数的关键字。
  • argument(s):函数的参数列表,参数之间用逗号(,)分割。
  • expression:被返回的表达式,且表达式只能有一个。

根据语法可知,由于 lambda 函数只能包含表达式,不能包含语句,因此 ​​lambda 函数不能使用 return,因为 return 是一个语句。​

注意:​lamda 函数应尽量简短,不要试图加入太多东西,​​如果逻辑比较复杂,应定义一个常规的函数。

2

基本用法

以一个数字的平方为例,先来看常规函数是如何定义的:

>>> def square(x):
... return x * x
...
>>>
>>> square(6)
36

若换作 lambda 函数的话,就是下面这样:

>>> square = lambda x: x * x
>>>
>>> square
<function <lambda> at 0x7f9171608950>
>>>
>>> square(6)
36

可以看到,这个函数没有名字,它返回了一个函数对象,该对象被分配给了变量 square,可以将其作为一个正常的函数来调用。

当然,也可以直接调用 lambda 函数,而无需将其分配给变量:

>>> (lambda x: x * x)(6)
36

但这样的可读性不是很好。

3

主要作用

lambda 函数有个优点,就是函数没有名字,所以​​不必担心函数名冲突。​

此外,​​当需要一些小体量的一次性函数时,可以使用 lambda 函数。​​​通常,​​它也被用作高阶函数(将其他函数作为参数的函数)的参数。​

例如,在一个函数内部使用 lambda 函数:

>>> def pow(y):
... return lambda x : x ** y
...
>>>

这个函数可用于求 x 的 y 次幂,来演示下如何使用:

>>> square = pow(2)  # 求平方
>>> cube = pow(3) # 求立方
>>>
>>> square(6)
36
>>> cube(6)
216

这样以来,便可以用 pow() 函数定义多个 lambda 函数了,非常方便!

·END·
 

高效程序员

谈天 · 说地 · 侃代码 · 开车

Python 匿名函数_函数对象_02


举报

相关推荐

0 条评论