返回介绍

14.15 本章小结

发布于 2024-02-05 21:59:47 字数 756 浏览 0 评论 0 收藏 0

Python 语言对迭代的支持如此深入,因此我经常说,Python 已经融合(grok)了迭代器。17Python 从语义上集成迭代器模式是个很好的例证,说明设计模式在各种编程语言中使用的方式并不相同。在 Python 中,自己动手实现的典型迭代器(如示例 14-4 所示)没有实际用途,只能用作教学示例。

17根据新黑客字典(Jargon file),grok 的意思不仅是学会了新知识,还要充分吸收知识,做到“人剑合一”。

本章中编写了一个类的几个版本,用于读取内容可能很多的文件,并迭代里面的单词。因为用了生成器,所以在重构的过程中,Sentence 类越来越简短,越来越易于阅读。最终,我们知道了生成器的工作原理。

后来,我们编写了一个用于生成等差数列的生成器,还说明了如何利用 itertools 模块做简化。随后,概览了标准库中 24 个通用的生成器函数。

接着,我们分析了内置的 iter 函数:首先说明,以 iter(o) 的形式调用时返回的是迭代器;之后分析,以 iter(func, sentinel) 的形式调用时,能使用任何函数构建迭代器。

分析实例时,我说明了一个数据库转换工具的实现方式,指明如何使用生成器函数解耦读写逻辑,如何高效处理大型数据集,以及如何轻易支持多种数据输入格式。

本章还提到了 Python 3.3 中新出现的 yield from 句法,还有协程。这里只对二者做了简单介绍,本书后面会更为深入地讨论。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文