5 函数

5.4 lambda表达式

  • lambda表达式常声明匿名函数,
    • 即没有函数名字的临时使用的小函数,
    • 临时要一个类似于函数的功能但又不想定义函数的场合。
  • sorted()和列表方法sort()的key参数,
    • 内置函数map()和 filter()的第一个参数
  • lambda表达式只可包含一个表达式,不允许包含其他复杂的语句,
    • 但表达式中可以调用其他函数,
    • 该表达式的计算结果相当于函数的返回值。

在这里插入图片描述

在这里插入图片描述

  • 用 lambda表达式时,注意变量作用域可能会带来的问题。
  • 下面的代码中变量x是在外部作用域中定义的,对 lambda表达式而言不是局部变量,从而错误。

在这里插入图片描述

在这里插入图片描述

  • lambda表达式相当于只有一条 return的函数
  • 调用时真正的返回值取决于全局变量i当前值。

在这里插入图片描述

  • lambda表达式很方便定义一些小函数
  • 如果仅要一简单运算,尽量用标准库 operator中提供的函数
    • 避免自己定义lambda表达式,
    • operator中的函数执行效率更高

5.5生成器函数设计要点

发布了589 篇原创文章 · 获赞 300 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/zhoutianzi12/article/details/105572438