基础篇_010_函数_匿名函数
----引入"匿名函数" ===》
如果只是想写一个很简单的函数,这时使用"有名"的函数就会显得有点麻烦。所以我们尝试一下不写函数名,一经使用就被回收的函数。
(当然,匿名函数其实并不只是做这个用的,它里面的lambda蕴涵了一些东西,这个之后再说,这里只要记住匿名函数的格式就行)
----匿名函数的"公式" ===》
lambda(关键字) arguments(参数): return_sentence(返回的语句)
匿名函数的返回语句有且仅有一句,只能是最终return的结果,不能写其他复杂的逻辑语句。
----举个栗子 ===》
定义一个功能为输入参数x,然后能输出结果为x+1的匿名函数:lambda x: x + 1
----怎么使用(调用)匿名函数 ===》
匿名函数没有"函数名"(此处的函数名指:没有函数的名称),怎么调用就显得很无头绪,不用着急,且看以下一段代码 ↓ ===》
def func(x):
return x + 1
print(func) # 输出:<function func at 0x0000017EB7DC86A8>
print(lambda x: x + 1) # 输出:<function <lambda> at 0x0000017EB7DF7158>
大家可以看到,匿名函数的返回值是函数所在的地址,也就是说匿名函数其实是有"函数名"的,就好像虽然没有给你门牌号的名片,但是还是口头告诉你了。既然知道了函数所在的地址,那就好办了,直接加个括号不就行了嘛! ===》
print((lambda x, y: x + y)(10, 2)) # 输出:12
当然,如果觉得这样不好看,不嫌麻烦的话也可以这样(但是这样就很明显不符合匿名函数的作用了) ===》
func = lambda x, y: x + y # 将匿名函数的返回值存起来
print(func(10, 2)) # 输出的结果为:12
----怎样用匿名函数返回多个值 ===》
先来看看有"函数名"的函数是怎么返回的 ===》
def func(x, y, z):
return x + 1, y + 1, z + 1
print(func(1, 2, 3)) # 输出:(2, 3, 4),以元组的形式返回
所以我们只需要手动地将返回值转换成元组的形式就行了 ===》lambda x, y, z: (x + 1, y + 1, z + 1)

浙公网安备 33010602011771号