- 前言
- 目标读者
- 非目标读者
- 本书的结构
- 以实践为基础
- 硬件
- 杂谈:个人的一点看法
- 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 术语表
- 作者简介
- 关于封面
使用代码示例
书中的所有完整代码和大多数程序片段都可以从 本书的 GitHub 代码库 中获取。
我们很希望但并不强制要求你在引用本书内容时加上引用说明。引用说明一般包括书名、作者、出版社和 ISBN。比如:Fluent Python by Luciano Ramalho (O'Reilly). Copyright 2015 Luciano Ramalho, 978-1-491-94600-8.
Josef Hartwig 设计的包豪斯国际象棋套装体现了最佳的设计理念:美观、简洁而清晰。有一位建筑师父亲,以及一位字体设计师弟弟,Guido van Rossum 设计出了一门经典的编程语言。我之所以热衷于教授 Python,也正是因为它的美观、简洁和清晰。
Alex Martelli 和 Anna Ravenscroft 是最先看到本书大纲的人,也是他们鼓励我把大纲交给 O'Reilly 出版社的。他们的书不但向我展示了地道的 Python 代码,还让我见识了什么才称得上是清晰、准确和有深度的技术写作。 Alex 在 Stack Overflow 上的 5000 多个回答 也体现了他对 Python 语言基础和正确用法的深入理解。
Martelli 和 Ravenscroft 同时也是本书的技术审稿人。除了他们之外,技术审稿人还有两位:Lennart Regebro 和 Leonardo Rochael。技术审稿团队里的每个人都至少有 15 年的 Python 经验,为许许多多具有广泛影响力的 Python 项目贡献过代码,并且跟社区里的其他开发者走得很近。审稿人一共提出了数百个修订、建议、问题和观点,为这本书做出了巨大贡献。另外,Victor Stinner 帮我审阅了第 18 章,他同时也是该章里提到的 asyncio 的维护者之一。在过去的几个月里能够跟他们合作,我感到很荣幸。
本书编辑 Meghan Blanchette 是一位出色的导师。她不但帮助我梳理整本书的结构、增强内容的连贯性,还为我指出哪里写得不够有趣,并且督促我及时交稿。Brian MacDonald 在 Meghan 休假的时候帮忙编辑了第三部分。跟他们以及 O'Reilly 的所有人打交道的过程都十分愉快。另外 Atlas 系统的开发和支持团队也很棒(Atlas 是 O'Reilly 的图书出版平台,我就是在这个平台上写作的)。
Mario Domenech Goulart 在看过本书第一次提前发行的版本后,提供了海量的详细建议。另外我还从 Dave Pawson、Elias Dorneles、Leonardo Alexandre Ferreira Leite、Bruce Eckel、J. S. Bueno、Rafael Gonçalves、Alex Chiaranda、Guto Maia、Lucas Vido 和 Lucas Brunialti 那里获得了宝贵的反馈。
几年来有很多人都在劝我写书,Rubens Prates、Aurelio Jargas、Rudá Moura 和 Rubens Altimari 这几位算是最有说服力的了。Mauricio Bussab 算得上带我入门的人,并且他让我有了第一次写书的尝试。Renzo Nuccitelli 毫不在乎这本书的写作可能会影响到我们合作的 python.pro.br 项目的进度,他从一开始就大力支持。
Python 巴西社区是一个集思广益、乐于分享且充满乐趣的地方。 Python 巴西小组 中有数千个人,每次的全国范围的会议都会把成百上千人聚集在一起。在我的 Python 爱好者成长之路上,对我影响最大的人有:Leonardo Rochael、Adriano Petrich、Daniel Vainsencher、Rodrigo RBP Pimentel、Bruno Gola、Leonardo Santagada、Jean Ferri、Rodrigo Senra、J. S. Bueno、David Kwast、Luiz Irber、 Osvaldo Santana、Fernando Masanori、Henrique Bastos、Gustavo Niemayer、Pedro Werneck、 Gustavo Barbieri、Lalo Martins、Danilo Bellini 和 Pedro Kroger。
Dorneles Tremea 是个非常棒的朋友(他很愿意花时间分享他的知识),他不但是很厉害的开发者,还是巴西 Python 协会中最鼓舞人心的领导人。可惜他过早离开了我们。
我的学生们同时也是我的老师,他们的问题、见解、反馈和那些富有创造性的回答教会了我很多。Érico Andrei 和 Simples Consultoria 让我头一次有机会集中精力做一名 Python 教师。
Martijn Faassen 是我的 Grok 导师,他同我分享了很多关于 Python 和尼安德特人的想法。Martijn 所做的事情,还有来自 Zope、Plone 和 Pyramid planets 的 Paul Everitt、Chris McDonough、Tres Seaver、Jim Fulton、Shane Hathaway、Lennart Regebro、Alan Runyan、Alexander Limi、Martijn Pieters 和 Godefroid Chapelle 等人所做的事情,在我事业发展的过程中起到了决定性的作用。多亏了 Zope 和第一波互联网浪潮,让我在 1998 年就开始从事 Python 相关的工作并以此为生。José Octavio Castro Neves 是我的搭档,我们在巴西开了第一家以 Python 业务为主的软件公司。
在更广阔的 Python 社区当中高手如云,我实在是没办法一一列出他们的名字。但是除了之前提到的之外,我还要感谢 Steve Holden、Raymond Hettinger、A.M. Kuchling、David Beazley、Fredrik Lundh、Doug Hellmann、Nick Coghlan、Mark Pilgrim、Martijn Pieters、Bruce Eckel、Michele Simionato、Wesley Chun、Brandon Craig Rhodes、Philip Guo、Daniel Greenfeld、Audrey Roy 和 Brett Slatkin,感谢他们让我见识到更新更好的教授 Python 的方法。
我基本上是在家里的办公室和两个公共空间完成这本书的写作的。两个公共空间分别是 CoffeeLab 和 Garoa Hacker Clube。 CoffeeLab 是位于巴西圣保罗 Vila Madalena 区的一个咖啡极客大本营。 Garoa Hacker Clube 则是一个开放的黑客空间,任何人都可以在这里实验他们的新点子。
Garoa 社区还为我提供了灵感、基础设施和放松的环境,我想 Aleph 会喜欢这本书的。
我的母亲 Maria Lucia 和父亲 Jairo 一直都以各种方式支持我。我真希望我的父亲还健在并看到本书的出版,同时也为能与我的母亲分享这本书而感到开心。
在写这本书的 15 个月里,身为丈夫的我几乎一直在工作,我的妻子 Marta Mello 陪我一起熬过了这段日子。在这如同跑马拉松的写作过程中,她不但一直支持我,而且在我想要放弃的时候陪我一起渡过难关。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论