生成器.py 675 B

123456789101112131415161718192021
  1. # -*- coding: UTF-8 -*-
  2. """
  3. 在 Python 中,使用了 yield 的函数被称为生成器(generator)。
  4. 跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。
  5. 在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,
  6. 返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。
  7. 调用一个生成器函数,返回的是一个迭代器对象
  8. """
  9. def demo():
  10. for i in range(4):
  11. yield i
  12. g = demo()
  13. g1 = (i for i in g)
  14. g2 = (i for i in g1)
  15. print(list(g1))
  16. print(list(g2))