【Python】一直没搞懂生成器是什么。。

生成器

上期我们讲解了迭代器:【Python】一直没搞懂迭代器是什么。。-CSDN博客
这期我们来讲讲它的好兄弟——生成器

生成器 (Generator)?

生成器是一种特殊的 迭代器 (Iterator)。
迭代器 是你可以逐个访问其元素的对象(比如在 for 循环中使用)。列表、元组、字典、字符串等都是可迭代对象,但它们不是迭代器本身。你可以通过调用 iter() 函数从可迭代对象获取迭代器。迭代器有一个 next() 方法,每次调用它会返回下一个元素,如果没有更多元素了,会引发 StopIteration 异常。
生成器 是一种创建迭代器的简单而强大的方法。它看起来像一个普通的函数,但关键区别在于它使用 yield 关键字来返回值,而不是 return

yield 是啥?

yield 是一个 Python 关键字,它有两个主要作用:

  1. 定义生成器函数: 任何包含 yield 语句的函数都会自动成为一个生成器函数。调用这个函数不会立即执行函数体,而是返回一个生成器对象(也就是一个迭代器)。
  2. 返回值并暂停: 当生成器函数的执行遇到 yield 语句时:
    • yield 后面的表达式的值会被返回给调用者(即正在迭代该生成器的代码)。
    • 函数的执行会在此处暂停,并保存当前的所有状态(包括局部变量)。
    • 当调用者请求下一个值时,函数会从暂停的地方恢复执行,直到遇到下一个 yield 或函数结束。
  3. 对比学习:yield vs return:
  • return彻底终止函数的执行,并返回一个值(或 None)。函数的状态不会被保存。

  • yield 只会暂停函数的执行,并返回一个值。函数的状态会被保存,以便下次可以恢复。一个生成器函数可以有多个 yield 语句。

yield生成器,它们俩两个的关系?

    <

你可能感兴趣的:(Python,python,服务器,数据库)