匿名函数


print(lambda x: x * 2)

# <function <lambda> at 0x00000000005D3E18>
# 输出为内存地址,为了可以执行,需要赋值给一个变量,再在后面加个括号
func = lambda x: x * 2
print(func(10))

# 或许可以简化如下。。。
print((lambda x: x * 2)(10))

# 多个返回值时,要用括号括起来
func = lambda x, y, z: (x + 1, y + 1, z + 1)
print(func(1, 2, 3))

---------------------------------------------

lambda是一个表达式,而并非语句

因为lambda是一个表达式,所以在python语言中可以出现在def语句所不能出现的位置上;
lambda与def语句相比较,后者必须在一开始就要将新函数命名;而前者返回一个新函数,可以有选择性的赋值变量名。

lambda主体只是单个表达式,并而一个代码块

lambda与普通函数function定义方法来比较它的功能更小,它只是一个为简单函数所服务的对象,而def能处理更大型的数据任务。

为什么要使用lambda?

用python学习手册中的一段话来回答这个问题非常好“lambda有起到速写函数的作用,允许在使用的代码内嵌入一个函数的定义。在仅需要嵌入一小段可执行代码的情况 下,就可以带来更简洁的代码结构。”lambda的使用在python基础知识学习中就会遇到,但真正应用时还是在python进阶的阶段,这时需要你做更深入学习。




原文地址:https://www.cnblogs.com/freelandun/p/7113675.html