基础篇_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)

 

posted @ 2020-02-17 16:15  BNTU  阅读(90)  评论(0)    收藏  举报