IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Python 生成器使用

    Yiran\'s Blog发表于 2019-03-09 21:47:35
    love 0
    背景 链接到标题 在清理 Pocket 列表的时候,发现自己很早之前收藏过 dabeaz 在 2008 年 PyCon 关于生成器的 PPT 讲解,今天读完,有所收获。 在 PPT 中, dabeaz 通过一个具体的文件处理的例子,一步一步的讲解了程序的演进,具体代码可以在 Github 查看。 生成器 链接到标题 使用 yield 关键字的函数就是生成器。生成器在运行时生成值,所以只能迭代一次。生成器可以通过 next 关键字执行,通常我们通过 for 循环来迭代生成器,可以自动处理 StopIteration 情况。 一个简单的生成器例子: def countdown(n): while n > 0: yield n n -= 1 >>> for i in countdown(5): ... print(i, end=' ') ... 5 4 3 2 1 当我们调用生成器时,仅返回一个生成器对象,不会执行函数内容,只有当执行 __next__() 时函数才会真正执行。yield 会返回给调用者当前值,同时暂停执行,等待下一次调用 __next__() 继续执行。 协程 链接到标题 在 python 中通过生成器的方式来实现协程:


沪ICP备19023445号-2号
友情链接