lambda表达式在“:”后只能有一个表达式。也就是说,在def中,用return可以返回的也可以放在lambda后面,不能用return返回的也不能定义在python lambda后面。因此,像if或for或print这种语句就不能用于lambda中,lambda一般只用来定义简单的函数

Python虽然不是一种函数式编程语言,但仍然给予了函数式编程很大的重视。接下来的几篇文章我将记录一些Python函数式编程的知识,其中本文要说的是匿名函数lambda。

Python使用lambda关键字创造匿名函数。所谓匿名,意即不再使用def语句这样标准的形式定义一个函数。这种语句的目的是由于性能的原因,在调用时绕过函数的栈分配。其语法是:

lambda [arg1[, arg2, ... argN]]: expression

其中,参数是可选的,如果使用参数的话,参数通常也会在表达式之中出现。

下面举例来说明lambda语句的使用方法(无参数)。

 

Python匿名函数lambda举例(无参数)
 
 
 
 
 
Python
 
1
2
3
4
5
6
7
8
9
10
11
12
# 使用def定义函数的方法
:
True
 
#等价的lambda表达式
True
>
 
# 保留lambda对象到变量中,以便随时调用
True
)
True

 

下面再举一个带参数的例子。

 

Python匿名函数lambda举例(含参数)
 
 
 
 
 
Python
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 使用def定义的函数
:
y
 
# 使用lambda的表达式
y
 
# lambda也允许有默认值和使用变长参数
y
z
 
# 调用lambda函数
y
)
4
y
)
3
)
4
z
)
)

 

是不是看起来代码更简洁,又不失可读性。

相关文章:

  • 2022-12-23
  • 2021-10-20
  • 2021-06-07
  • 2021-11-16
  • 2022-12-23
  • 2022-12-23
  • 2021-07-25
猜你喜欢
  • 2021-08-18
  • 2021-06-10
  • 2021-08-24
  • 2021-07-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案