- 前言
- 目标读者
- 非目标读者
- 本书的结构
- 以实践为基础
- 硬件
- 杂谈:个人的一点看法
- Python 术语表
- Python 版本表
- 排版约定
- 使用代码示例
- 第一部分 序幕
- 第 1 章 Python 数据模型
- 第二部分 数据结构
- 第 2 章 序列构成的数组
- 第 3 章 字典和集合
- 第 4 章 文本和字节序列
- 第三部分 把函数视作对象
- 第 5 章 一等函数
- 第 6 章 使用一等函数实现设计模式
- 第 7 章 函数装饰器和闭包
- 第四部分 面向对象惯用法
- 第 8 章 对象引用、可变性和垃圾回收
- 第 9 章 符合 Python 风格的对象
- 第 10 章 序列的修改、散列和切片
- 第 11 章 接口:从协议到抽象基类
- 第 12 章 继承的优缺点
- 第 13 章 正确重载运算符
- 第五部分 控制流程
- 第 14 章 可迭代的对象、迭代器和生成器
- 14.1 Sentence 类第1版:单词序列
- 14.2 可迭代的对象与迭代器的对比
- 14.3 Sentence 类第2版:典型的迭代器
- 14.4 Sentence 类第3版:生成器函数
- 14.5 Sentence 类第4版:惰性实现
- 14.6 Sentence 类第5版:生成器表达式
- 14.7 何时使用生成器表达式
- 14.8 另一个示例:等差数列生成器
- 14.9 标准库中的生成器函数
- 14.10 Python 3.3 中新出现的句法:yield from
- 14.11 可迭代的归约函数
- 14.12 深入分析 iter 函数
- 14.13 案例分析:在数据库转换工具中使用生成器
- 14.14 把生成器当成协程
- 14.15 本章小结
- 14.16 延伸阅读
- 第 15 章 上下文管理器和 else 块
- 第 16 章 协程
- 第 17 章 使用期物处理并发
- 第 18 章 使用 asyncio 包处理并发
- 第六部分 元编程
- 第 19 章 动态属性和特性
- 第 20 章 属性描述符
- 第 21 章 类元编程
- 结语
- 延伸阅读
- 附录 A 辅助脚本
- Python 术语表
- 作者简介
- 关于封面
结语
Python 是给法定成年人使用的语言。
——Alan Runyan
Plone 的联合创始人
Alan 的精辟定义道出了 Python 最好的特质之一:它不妨碍你,让你做你该做的事。这也意味着,它不会给你提供工具,让你限制其他人能对你的代码和代码所构建的对象做什么。
当然,Python 不完美。对我来说,最没法接受的是,Python 在标准库中混用驼峰式和蛇底式,或者直接把单词连在一起。但是,语言的定义和标准库只是生态系统的一部分。用户和贡献者组成的社区才是 Python 生态系统最重要的部分。
有一个例子可以说明社区的好处。一天早上,我在撰写 asyncio 包相关的内容时,感到很沮丧,因为那个包的 API 有很多函数,其中有些是协程,可是协程必须使用 yield from 调用,而常规的函数不能这么做。这在 asyncio 包的文档中有说明,可是有时阅读几段文字之后才能确定某个函数是不是协程。因此,我给 python-tulip 邮件列表发了一个消息,题为“Proposal: make coroutines stand out in the asyncio docs”。asyncio 包的核心开发者 Victor Stinner、aiohttp 包的主要作者 Andrew Svetlov、Tornado 的首席开发者 Ben Darnell,以及 Twisted 的发明者 Glyph Lefkowitz 加入了讨论。Darnell 提出了一个方案,Alexander Shorin 解说如何在 Sphinx 中实现,Stinner 添加了所需的配置和标记。我提出这个问题不到 12 小时,asyncio 包的整个线上文档都更新了,添加了今天你所看到的“coroutine”标签。
在排外的社区中绝不会有这种事。任何人都能加入 python-tulip 邮件列表,我编写那个提议之前只发布过几次消息而已。这个故事表明,Python 社区特别开放,广纳新想法和新成员。Guido van Rossum 也在 python-tulip 邮件列表中,即使是简单的问题也经常回答。
还有一个例子能说明 Python 的开放:Python 软件基金会(Python Software Foundation,PSF)一直在努力提升 Python 社区的多样性,而且已经达成一些令人欣喜的成果。2013— 2014 年,PSF 董事会首次选出了女性董事——Jessica McKellar 和 Lynn Root。2015 年在蒙特利尔举办的 PyCon North America 大会(Diana Clarke 主持),约 1/3 的演讲者是女性。我还没见过其他 IT 大会如此追求性别平等。
如果你是 Python 程序员,但尚未加入社区,我建议你快点加入。寻找你所在地区的 Python 用户组(Python Users Group,PUG)。如果没有,那就创建一个。任何地方都有人使用 Python,你并不孤独。如果可能的话,参加别处举办的会议。来参加 PythonBrasil 大会吧,多年以来这个大会都有来自世界各地的演讲者。与其他 Python 程序员见面比任何线上互动都好,除了可以获得别人分享的知识外,还有很多好处,例如工作机会和真正的友谊。
我知道,如果没有多年来我在 Python 社区中结交的朋友的帮助,我不可能写出这本书。
我的父亲说过,“Só erra quem trabalha”,这是葡萄牙语,意思是“只有真正做事的人才会犯错”。这个建议很棒,能让你不再害怕失败,迈步向前。撰写这本书的过程中,我肯定犯了错误。审校、编辑和预先发布版的读者帮我找出了很多错误。早期发布版刚发布几小时,就有一个读者在本书的勘误页面报告拼写错误。其他读者报告了更多错误,我的朋友还直接联系我,提供建议和更正。我写完本书后,O'Reilly 的文字编辑会在出版过程中找出其他错误。如果还有任何错误和词不达意的表述,责任都在我,在此向各位读者致歉。
终于写完这本书了,我特别高兴,无论有没有错误,我都十分感激一路上给我帮助的每个人。希望很快就能在会议上见到你。如果见到我,请过来打声招呼。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论