附录 E. 修订历史
2007-09-01 (5.4b)
- XiaQ (xiaqqaix AT gmail DOT com) 进行了 Dive Into Python 中文版的修订工作,重发布为 5.4b 版。可以在 Dive Into Python 中文版的项目主页上找到一份完整的 (同时也是及其冗长的) 修订清单。注意原英文版不含 5.4b 版。
2006-04-25 (5.4 中文版)
参加了 Dive Into Python 中文版 5.4 版翻译的有:
- limodou (limodou AT gmail DOT com)
- Zoom.Quiet (zoom.quiet AT gmail DOT com)
- Jason Xie (jason AT sinoesl DOT org)
- YuLin (yulin724 AT gmail DOT com)
- Weigang LI (dimens AT gmail DOT com)
- wolfg (wolfg1969 AT gmail DOT com)
- Osmond (sinosmond AT gmail DOT com)
2004-05-20 (5.4)
- 添加了 第 12.1 节 “概览”。
- 添加了 第 12.2 节 “安装 SOAP 库”。
- 添加了 第 12.3 节 “步入 SOAP”。
- 添加了 第 12.4 节 “ SOAP 网络服务查错”。
- 添加了 第 12.5 节 “WSDL 介绍”。
- 添加了 第 12.6 节 “以 WSDL 进行 SOAP 内省”。
- 添加了 第 12.7 节 “搜索 Google”。
- 添加了 第 12.8 节 “ SOAP 网络服务故障排除”。
- 添加了 第 12.9 节 “小结”。
- 修改了 第 16 章 函数编程 和 第 18 章 性能优化 中的大量技术评论。
2004-05-12 (5.3)
- 为 第 18.3 节 “优化正则表达式” 添加了
isalpha()
的示例。感谢你,Paul。 - 对 第 5 章 对象和面向对象 和 第 6 章 异常和文件处理 进行了大量修改。
- 修正了 第 9.7 节 “Segue ” 中的 URL 地址。
2004-05-09 (5.2)
- 修正了 第 14.1 节 “roman.py, 第 1 阶段” 中的一个 URL 地址。
- 添加了 第 18.1 节 “概览”。
- 添加了 第 18.2 节 “使用 timeit 模块”。
- 添加了 第 18.3 节 “优化正则表达式”。
- 添加了 第 18.4 节 “优化字典查找”。
- 添加了 第 18.5 节 “优化列表操作”。
- 添加了 第 18.6 节 “优化字符串操作”。
- 添加了 第 18.7 节 “小结”。
2004-05-05 (5.1)
- 修订了 例 7.7 “校验十位数” 和 例 7.8 “用 {n,m} 语法确认罗马数字”。
- 修订了 例 7.10 “发现数字” 。
- 修正了 例 11.6 “测试 Last-Modified” 中的拼写错误。感谢你,Jesir。
- 修正了 例 3.11 “extend (扩展) 与 append (追加) 的差别” 与 append (追加) 的差别") 中的拼写错误。感谢你,Daniel。
- 修改了大量技术评论。
- 对 第 1 章 安装 Python、第 2 章 第一个 Python 程序、第 3 章 内置数据类型 和 第 4 章 自省的威力 进行了大量修改。
2004-04-16 (5.0)
- 添加了 第 11.1 节 “概览”.
- 添加了 第 11.2 节 “避免通过 HTTP 重复地获取数据”.
- 添加了 第 11.3 节 “HTTP 的特性”.
- 添加了 第 11.4 节 “调试 HTTP web 服务”.
- 添加了 第 11.5 节 “设置 User-Agent”.
- 添加了 第 11.6 节 “处理 Last-Modified 和 ETag”.
- 添加了 第 11.7 节 “处理重定向”.
- 添加了 第 11.8 节 “处理压缩数据”.
- 添加了 第 11.9 节 “全部放在一起”.
- 添加了 第 11.10 节 “小结”.
- 添加了 例 3.11 “extend (扩展) 与 append (追加) 的差别” 与 append (追加) 的差别").
- 在 第 1 章 安装 Python 中修改了关于如何下载 Python 的描述,使其更一般化,且减少了版本依赖性。
- 在 第 2.1 节 “概览” 和 第 2.4 节 “万物皆对象” 中,把术语 “module” (模块) 改为了 “program” (程序),因为我们此时尚未介绍模块。
- 在 第 2.4 节 “万物皆对象” 中,添加了打开 Python IDE 的详细说明,和原来的例子合并在一起。
- 把所有引用到布尔值
1
(真) 和0
(假) 分别改为了True
和False
。 - 更新了 例 3.22 “字符串格式化与字符串连接的比较” ,以展示 Python 2.3 所显示的
TypeError
消息。 - 修正了 例 17.19 “使用生成器替代递归” 中的拼写错误。
- 修正了 第 7.7 节 “小结” 中的拼写错误。
- 修正了 例 17.9 “plural4.py” 中的拼写错误。
2004-03-25 (4.9)
- 完成了 第 16.7 节 “全部放在一起”。
- 添加了 第 16.8 节 “小结”。
- 把对单元测试的介绍分成了两章: 第 13 章 单元测试 和 第 14 章 测试优先编程。
- 修正了 例 17.12 “plural4.py 的完成” 中的拼写错误。
- 修正了 例 17.18 “介绍生成器” 中的拼写错误。
2004-03-25 (4.8)
- 完成了 第 17.7 节 “plural.py, 第 6 阶段”。
- 完成了 第 17.8 节 “小结”。
- 修复了 附录 A, 进一步阅读、附录 B, 五分钟回顾、附录 C, 技巧和窍门和附录 D, 示例清单中的失效链接。
2004-03-21 (4.7)
- 添加了 第 17.1 节 “概览”。
- 添加了 第 17.2 节 “plural.py, 第 1 阶段”。
- 添加了 第 17.3 节 “plural.py, 第 2 阶段”。
- 添加了 第 17.4 节 “plural.py, 第 3 阶段”。
- 添加了 第 17.5 节 “plural.py, 第 4 阶段”。
- 添加了 第 17.6 节 “plural.py, 第 5 阶段”。
- 添加了 第 17.7 节 “plural.py, 第 6 阶段” (未完成)。
- 添加了 第 17.8 节 “小结” (未完成)。
2004-03-14 (4.6)
- 完成了 第 7.4 节 “使用 {n,m} 语法”。
- 完成了 第 7.5 节 “松散正则表达式”。
- 完成了 第 7.6 节 “个案研究:解析电话号码”。
- 扩写了 第 7.7 节 “小结”。
2004-03-07 (4.5)
- 添加了 第 7.1 节 “概览”。
- 添加了 第 7.4 节 “使用 {n,m} 语法” (未完成)。
- 添加了 第 7.5 节 “松散正则表达式” (未完成)。
- 添加了 第 7.6 节 “个案研究:解析电话号码” (未完成)。
- 添加了 第 7.7 节 “小结”。
- 把 第 7.2 节 “个案研究:街道地址” 和 第 7.3 节 “个案研究:罗马字母” 移入了正则表达式这一章。
- 添加了 例 6.20 “使用 glob 列出目录”。
- 添加了 例 6.7 “写入文件”。
- 添加了 例 5.11 “直接继承自内建数据类型 dict”。
- 添加了 例 10.11 “打印到 stderr”。
- 添加了 例 4.12 “使用getattr 创建分发者” 和 例 4.13 “getattr 缺省值”。
- 添加了 例 2.6 “if 语句”。
- 添加了 例 3.23 “数值的格式化”。
- 把 第 5 章 对象和面向对象 分成了两章:第 5 章 对象和面向对象 和 第 6 章 异常和文件处理。
- 把 第 9 章 XML 处理 分成了两章:第 9 章 XML 处理 和 第 10 章 脚本和流。
- 把 第 13 章 单元测试 分成了两章:第 13 章 单元测试 和 第 15 章 重构。
- 把 第 4 章 自省的威力 中的
help
改名为info
。 - 修正了 第 8.5 节 “locals 和 globals” 中的回向引用。
- 修复了 第 8.1 节 “概览” 中失效的示例链接。
- 修复了 第 9.1 节 “概览” 示例中丢失的若干行。
- 修正了 第 8.2 节 “sgmllib.py 介绍” 中的拼写错误。
2003-10-08 (4.4)
- 添加了 第 1.1 节 “哪一种 Python 适合您?”。
- 添加了 第 1.2 节 “Windows 上的 Python”。
- 添加了 第 1.3 节 “Mac OS X 上的 Python ”。
- 添加了 第 1.4 节 “Mac OS 9 上的 Python ”。
- 添加了 第 1.5 节 “RedHat Linux 上的 Python ”。
- 添加了 第 1.6 节 “Debian GNU/Linux 上的 Python ”。
- 添加了 第 1.7 节 “从源代码安装 Python ”。
- 添加了 第 1.9 节 “小结”。
- 删除了序言。
- 修正了 例 3.27 “odbchelper.py 的输出结果” 中的拼写错误。
- 为 第 2.3 节 “文档化函数” 添加了指向 PEP 257的链接。
- 修正了 第 3.4.2 节 “一次赋多值” 中指向 How to Think Like a Computer Scientist 的链接。
- 添加了 第 3.3 节 “Tuple 介绍” 中关于隐式断言 (assert) 的评注。
2003-09-28 (4.3)
- 添加了 第 16.6 节 “动态导入模块”。
- 添加了 第 16.7 节 “全部放在一起” (未完成)。
- 修正了 附录 F, 关于本书 中的链接。
2003-09-17 (4.2.1)
- 修正了主页中的链接。
- 修复了语法高亮。
2003-09-12 (4.2)
- 修正了 第 16.4 节 “重识列表映射”、第 16.3 节 “重识列表过滤”、第 7.2 节 “个案研究:街道地址” 和 第 10.6 节 “处理命令行参数” 中的拼写错误。感谢你,Doug。
- 修正了 第 5.3 节 “类的定义” 中的外部链接。感谢你,Harry。
- 修改了 第 4.5 节 “过滤列表” 结尾的措辞。感谢你,Paul。
- 为 第 13.5 节 “负面测试 (Testing for failure)”") 添加了几句话,以强调我们正在给
assertRaises
传递一个函数,而非函数名称。感谢你,Stephen。 - 修正了 第 8.8 节 “dialect.py 介绍” 中的拼写错误。感谢你,Wellie。
- 修正了关于方言示例的若干链接。
- 修正了关于罗马数字历史的外部链接。感谢世界各地的罗马数字爱好者。
2002-07-28 (4.1)
- 添加了 第 10.3 节 “查询缓冲节点”。
- 添加了 第 10.4 节 “查找节点的直接子节点”。
- 添加了 第 10.5 节 “根据节点类型创建不同的处理器”。
- 添加了 第 10.6 节 “处理命令行参数”。
- 添加了 第 10.7 节 “全部放在一起”。
- 添加了 第 10.8 节 “小结”。
- 修正了 第 6.5 节 “与目录共事” 中的拼写错误。应该是
os.getcwd()
,而不是os.path.getcwd()
。感谢你,Abhishek。 - 修正了 第 3.7 节 “连接 list 与分割字符串” 中的排印错误。当在 Python IDE 中求值 (而非打印) 的时候,它会在输出的两侧加上单引号。
- 修改了 第 4.8 节 “全部放在一起” 中的
str
示例,以使用一个用户定义的函数,因为 Python 2.2 会为内置的字典模块定义一个doc string
,从而导致原来那个示例的失效。感谢 Eric。 - 修正了 第 9.4 节 “Unicode” 中的拼写错误,“anyway”改为“anywhere”。感谢 Frank。
- 修正了 第 13.6 节 “完备性检测 (Testing for sanity)”") 中的拼写错误,我原把“accept”重复了一次。感谢 Ralph.
- 修正了 第 15.3 节 “重构” 中的排印错误,
C?C?C?
匹配零至三个C
,而不是四个。感谢 Ralph。 - 重写了 例 3.9 “Slice 简写” 中对分片的解说,使之更加清晰。感谢 Petr。
- 添加了 第 5.5 节 “探索 UserDict:一个封装类” 中的历史评注。现在 Python 2.2 支持直接子类化内置数据类型了。
- 为 例 5.9 “定义 UserDict 类” 添加了对字典的方法
update
的解说。感谢 Petr。 - 在 第 5.5 节 “探索 UserDict:一个封装类” 中阐明了 Python 对重载的不支持。感谢 Petr。
- 修正了 例 8.8 “BaseHTMLProcessor 介绍” 中的排印错误。HTML 注释以两个 (而非一个) 横杠和一个括号结束。感谢 Petr。
- 修改了 第 8.5 节 “locals 和 globals” 中关于嵌套作用域的注记。Python 2.2 已经发布了。感谢 Petr。
- 修正了 例 8.14 “BaseHTMLProcessor.py 中的基于 dictionary 的字符串格式化”; 中的排印错误:本应该是一连串空格,我误打为一个了。感谢 Petr。
- 添加了 第 5.5 节 “探索 UserDict:一个封装类” 的标题以标志基类。感谢 Petr。
- 添加了 第 15.3 节 “重构” 中的标题以提示下载
unittest
。感谢 Petr。 - 修正了 例 16.6 “在当前目录运行脚本” 中的排版错误;空格被误打为了制表符;行号也没有对准。感谢 Petr。
- 修正了 第 3.2 节 “List 介绍” 中首字母未大写的错误。应该是
True
和False
,而非true
和false
。感谢所有指出这一点的读者。 - 修改了 第 3.1 节 “Dictionary 介绍”、第 3.2 节 “List 介绍” 和 第 3.3 节 “Tuple 介绍” 的小节标题。“Dictionaries 101”表明这是 Dictionary 的入门教程。美国的大学往往用“101”标示无需知识背景的入门课程,但显然这仅仅是个美国传统,所以没必要让我的国际读者们费劲猜测。――当我一年半前开始写这本书时,从未想到会拥有国际读者。
- 把样式表升级到 DocBook XSL 1.52 版。
- 升级到 由 Michael Kay 编制的 SAXON XSLT 解析器 6.52 版。
- 调整了样式表的相关部分。
- 上次修订后,她答应了。婚礼明年春天举行。
2002-04-26 (4.0-2)
- 修正了 例 4.15 “and 介绍” 中的拼写错误。
- 修正了 例 2.4 “模块导入的搜索路径” 中的拼写错误。
- 修复了 Windows 帮助文件 (样式表的改动引起了目录的丢失)。
2002-04-19 (4.0)
- 扩写了 第 2.4 节 “万物皆对象”,详细介绍了导入搜索路径。
- 修正了 例 3.7 “负的 list 索引” 中的拼写错误。感谢 Brian 的校正。
- 重写了 第 3.2 节 “List 介绍” 中关于真值的提示。现在 Python 有单独的布尔类型了。
- 修正了 第 5.2 节 “使用 from module import 导入模块” 中与 Java 的语法比较部分的拼写错误。感谢 Rick 的校正。
- 添加了 第 5.5 节 “探索 UserDict:一个封装类” 中的注解,说明了子类总是重写基类。
- 修正了 例 5.18 “修改类属性” 中的拼写错误。感谢 Kevin 的校正。
- 添加了 第 6.1 节 “异常处理” 中的注解,说明了可以自己定义异常并触发它。感谢 Rony 的建议。
- 修正了 例 8.17 “处理特别标记” 中的拼写错误。感谢 Rick 的校正。
- 添加了 例 8.18 “SGMLParser” 中的注解,详细说明了返回值。感谢 Howard 的建议。
- 在 例 10.6 “openAnything” 中,添加了
StringIO
初始化式中的str
函数。感谢 Ganesan 的主意。 - 添加了 第 13.3 节 “romantest.py 介绍” 中的链接,解释了为什么测试用例要放在另一个文件中。
- 修改了 第 16.2 节 “找到路径”,用
os.path.dirname
代替了os.path.split
。感谢 Marc 的主意。 - 添加了代码示例 (
piglatin.py
、parsephone.py
和plural.py
),为正则表达式一章作准备。 - 更新并扩充了主页上关于 Python 的链接。
2002-01-01 (3.9)
- 添加了 第 9.4 节 “Unicode”。
- 添加了 第 9.5 节 “搜索元素”。
- 添加了 第 9.6 节 “访问元素属性”。
- 添加了 第 10.1 节 “抽象输入源”。
- 添加了 第 10.2 节 “标准输入、输出和错误”。
- 在 第 6.3 节 “for 循环” 中,为
for
循环示例添加了简单计数的例子 (好的用法和不好的用法)。感谢 Kevin 的主意。 - 修正了 例 3.25 “keys, values 和 items 函数” 中的排印错误 (
params.values()
的两个元素被颠倒了)。 - 修正了 第 4.3 节 “使用 type、str、dir 和其它内置函数” 中关于
__builtin__
模块的错误。感谢 Denis 的校正。 - 为 第 16.2 节 “找到路径” 添加了更多的示例,展示了如何在当前目录下运行单元测试,而不必进入
regression.py
所在的目录。 - 在 例 3.7 “负的 list 索引” 中,修改了如何由正索引得到负索引的解释。感谢 Renauld 的建议。
- 更新了主页上 Python 的下载链接。
- 为主页添加了指向 Bruce Eckel 的 Thinking in Python 初稿的链接。这是一本不可思议的 (也是高阶的) 书,讲述了设计模式以及如何用 Python 实现它们。
2001-11-18 (3.8)
- 添加了 第 16.2 节 “找到路径”。
- 添加了 第 16.3 节 “重识列表过滤”。
- 添加了 第 16.4 节 “重识列表映射”。
- 添加了 第 16.5 节 “数据中心思想编程”。
- 扩充了 第 16.1 节 “概览” 中的样例输出。
- 完成了 第 9.3 节 “XML 解析”。
2001-09-30 (3.7)
- 添加了 第 9.2 节 “包”。
- 添加了 第 9.3 节 “XML 解析”。
- 把 第 9.1 节 “概览” “打扫干净”了。感谢 Matt 的建议。
- 在 第 5.2 节 “使用 from module import 导入模块” 中,添加了关于 Java 的提示。感谢 Ori 的建议。
- 修正了 第 4.8 节 “全部放在一起” 中的错误。我曾暗示过,在 Python 中你不能使用
is None
来判断变量是否为 null。实际上可以;而且它比== None
快。感谢 Ori 指出错误。 - 澄清了 第 3.2 节 “List 介绍”:我曾说
li = li + other
与li.extend(other)
等价。操作结果的确相同;但extend
更快,因为它不会创建新 list。感谢 Denis 指出。 - 修正了 第 3.2 节 “List 介绍” 中的错误:我曾说
li += other
与li = li + other
等价。实际上,它与li.extend(other)
等价,因为它不会创建新 list。感谢 Denis 指出。 - 修正了 第 2 章 第一个 Python 程序 因我的懒惰而引起的排版错误。当我写这一章时,我没有在字符串字面量的两侧加单引号。它们会被赋予特殊字体,但在这本书的一些编译版本 (如纯文本) 中这不奏效。感谢 Denis 的建议。
- 修正了 第 2.2 节 “函数声明” 中的错误。我曾说静态类型语言总是显示地要求给出变量的数据类型;事实上并非总是如此。有些静态类型语言会在编译时根据代码确定变量类型。感谢 Tony 指出。
- 添加了指向 西班牙文版 的链接。
2001-09-06 (3.6.4)
- 为
BaseHTMLProcessor
添加处理非 HTML 实体引用的代码,并在 第 8.4 节 “BaseHTMLProcessor.py 介绍” 中添加了关于它的注解。 - 修改了 例 8.11 “globals 介绍”,使之在输出中包括
htmlentitydefs
。
2001-09-04 (3.6.3)
- 修正了 第 9.1 节 “概览” 中的拼写错误。
- 添加了指向 韩文版 的链接。
2001-08-31 (3.6.2)
- 修正了 第 13.6 节 “完备性检测 (Testing for sanity)”") 中的排印错误 (最后一点要求列了两次)。
2001-08-31 (3.6)
- 完成了 第 8 章 HTML 处理;在其末尾添加了 第 8.9 节 “全部放在一起” 和 第 8.10 节 “小结”。
- 添加了 第 15.4 节 “后记”。
- 在 第 9 章 XML 处理 开头添加了 第 9.1 节 “概览”。
- 在 第 16 章 函数编程 开头添加了 第 16.1 节 “概览”。
- 修正了一个长期存在的 bug:第 8 章 HTML 处理 中的示例被错误地着色了。
- 添加了指向 法文版 的链接。他们做对了:他们翻译了 XML 源文件,这样我的构建脚本得以重用,他们的成果就可以用六种格式发布。
- 升级到 DocBook XSL 1.43 版的样式表。
- 升级到 由 Michael Kay 编制的 SAXON XSLT 解析器 6.43 版。
- 对样式表进行了大规模翻修:放弃了原来的基于表格的排版,转向层叠样式表。不幸的是, CSS 总是会出兼容性问题,所以在每个页面的首尾部分都保留的表格。编译后的 HTML 版本在 Netscape 4 看起来更糟糕了;但在大多数现代浏览器中――包括 Netscape 6、Mozilla、Internet Explorer 5、Opera 5、Konqueror 和 iCab――中表现良好。在 Lynx 中完全可读。我爱 Lynx!它是我使用的第一个浏览器。你永远不会忘记你的第一次。
- 迁移到 Ant 平台上,以便控制进程――我现在可是在六种格式和两种语言中探险。
- 整理了所有的下载档案;这之前我为每个平台都发布了不同的文件,因为 Python 的
zipfile
模块创建的 .zip 文件不标准,因此不能被 Mac OS 上的 Aladdin Expander 打开。但 Ant 创建的 .zip 完全标准,兼容性良好。好样的,Ant! - 我们把 XML 源、XSL 样式表和相关的脚本和库放在了 SourceForge。对于喜欢冒险的人们,当然有 CVS 接入。
- 在与 GPL 调和的 Python 2.1.1 license 下重新发布了代码。感谢你,Guido;人们确实关心,而它确实要紧。
2001-06-26 (3.5)
- 在 第 2.2 节 “函数声明” 中添加了对 强/弱/静态/动态 数据类型的注解。
- 添加了 第 3.1 节 “Dictionary 介绍” 中关于大小写敏感的示例。
- 在 第 5 章 对象和面向对象 中使用了
os.path.normcase
,以兼容对大小写不敏感的糟糕的操作系统。 - 修正了 PDF 版本中代码的缩进问题。
2001-05-31 (3.4)
- 添加了 第 14.5 节 “roman.py, 第 5 阶段”。
- 添加了 第 15.1 节 “处理 bugs”。
- 添加了 第 15.2 节 “应对需求变化”。
- 添加了 第 15.3 节 “重构”。
- 添加了 第 15.5 节 “小结”。
- 又修正一个样式表 bug :嵌套的
</span>
标记总是丢失。
2001-05-24 (3.3)
- 添加了 第 13.2 节 “深入”。
- 添加了 第 13.3 节 “romantest.py 介绍”。
- 添加了 第 13.4 节 “正面测试 (Testing for success)”")。
- 添加了 第 13.5 节 “负面测试 (Testing for failure)”")。
- 添加了 第 13.6 节 “完备性检测 (Testing for sanity)”")。
- 添加了 第 14.1 节 “roman.py, 第 1 阶段”。
- 添加了 第 14.2 节 “roman.py, 第 2 阶段”。
- 添加了 第 14.3 节 “roman.py, 第 3 阶段”。
- 添加了 第 14.4 节 “roman.py, 第 4 阶段”。
- 在兼容 Netscape/Mozilla 的强烈要求下,调整了样式表。
2001-05-03 (3.2)
- 添加了 第 8.8 节 “dialect.py 介绍”。
- 添加了 第 7.2 节 “个案研究:街道地址”。
- 修正了
handle_decl
方法中的 bug:它会产生不正确的声明 (把空格加在的不该出现的地方)。 - 修正了 CSS (2.9 介绍过) 中的 bug:背景色丢失了。
2001-04-18 (3.1)
- 为
BaseHTMLProcessor.py
添加处理声明的代码;现在 Python 2.1 也支持这段代码了。 - 添加 第 8.5 节 “locals 和 globals” 中关于嵌套作用域的注解。
- 修正了 例 8.1 “BaseHTMLProcessor.py” 中的一个隐秘的 bug:带有字符实体的属性值不会被合适地转义。
- 对于本书中的示例,现在推荐 (并不要求) Python 2.1,因为它支持
sgmllib.py
中的声明。 - 更新了 主页 上的链接,使其指向已经发布的 Python 2.1。
- 给文件加上了时间戳,以帮助重发布这本书的人们。
2001-04-16 (3.0)
- 对 第 8 章 HTML 处理 中的代码修正了几个小错误。
- 在 主页 上添加了指向中文版的链接。
2001-04-13 (2.9)
- 添加了 第 8.5 节 “locals 和 globals”。
- 添加了 第 8.6 节 “基于 dictionary 的字符串格式化”。
- 紧缩了 第 8 章 HTML 处理 中的代码,特别是
ChefDialectizer
,以使用更少、更简单的正则表达式。 - 修正了一个样式表 bug:它使得生成 PDF 版本时插入了不必要的空白页。
- 修正了一个脚本 bug:它剥除了 主页 上的
DOCTYPE
。 - 添加了指向 Python Cookbook](http://www.activestate.com/ASPN/Python/Cookbook/ "growing archive of annotated code samples") 的链接,并为 [附录 A, 进一步阅读 添加了一些链接。
- 改用 Google 代理
http://diveintopython.org/
的站内搜索。 - 升级到 DocBook XSL 样式表 1.36 版――比它所宣称的麻烦多了。可能还有潜伏的 bug。
2001-03-26 (2.8)
- 添加了 第 8.3 节 “从 HTML 文档中提取数据”。
- 添加了 第 8.4 节 “BaseHTMLProcessor.py 介绍”。
- 添加了 第 8.7 节 “给属性值加引号”。
- 紧缩了 第 4 章 自省的威力 中的代码:使用的内置函数
callable
来代替手工检测。 - 把 第 5.2 节 “使用 from module import 导入模块” 从 第 4 章 自省的威力 移到了 第 5 章 对象和面向对象。
- 修正了 第 5.1 节 “概览” 中的排印错误 (补回了冒号)。
- 添加了几个额外的供下载的样例脚本。
- 添加了 Windows Help 输出格式。
2001-03-16 (2.7)
- 添加了 第 8.2 节 “sgmllib.py 介绍”。
- 紧缩了 第 8 章 HTML 处理 中的代码。
- 修改了 第 2 章 第一个 Python 程序 中的代码:用了
items
方法代替了keys
。 - 把 第 3.4.2 节 “一次赋多值” 一节移到了 第 2 章 第一个 Python 程序。
- 编辑了关于字符串
join
方法的评注,提供了 The Whole Python FAQ 中解释whyjoin
is a string method (为什么join
是字符串方法) 而不是 list 方法的这一新条目。 - 重写了 第 4.6 节 “and 和 or 的特殊性质”,强调了
and
和or
的基本性质;并且不再强调and-or
技巧。 - 把语言比较重新组织为了
note
。
2001-02-28 (2.6)
- 给 PDF 和 Word 版本加入了彩色的示例文本、改进后的目录,以及缩进良好的
tip
和note
。 - 现在 Word 版本是正宗的 Word 格式了,与 Word 97 完全兼容。
- 部分地解决 PDF 和纯文本版本中的特殊字符 (像 TM 符号和花括号) 错误的问题。
- 添加了指向支持 UNIX 的 Word 版本的下载链接――有些小鬼想把它导入到 StarOffice 或其它什么环境中去。
- 修正了几个丢失标题的
注记
。 - 修正了一个 bug:它会导致 Internet Explorer 5 for Mac OS 示例中的彩色文字发生字体错乱。(你好?!?Microsoft?好,你倒说说看,到底是
<pre>
的哪一部分你不懂?) - 修复了 Mac OS 档案的下载链接。
- 在每章的第一个示例程序前,都添加了下载示例程序的链接。(我的日志显示人们往往会跳过本可以下载它们的那两个页面 (即: 主页 和序言),然后在阅读时惊慌失措地寻找下载地址。)
- 进一步紧缩了 主页 和序言――但愿人们不会再因为其杂乱不堪而跳过它们。
- 但愿早点结束这没完没了的调试,回到写作正轨。
2001-02-23 (2.5)
- 添加了 第 6.4 节 “使用 sys.modules”。
- 添加了 第 6.5 节 “与目录共事”。
- 把 例 6.17 “分割路径名” 从 第 3.4.2 节 “一次赋多值” 移到了 第 6.5 节 “与目录共事”。
- 添加了 第 6.6 节 “全部放在一起”。
- 添加了 第 5.10 节 “小结”。
- 添加了 第 8.1 节 “概览”。
- 修正了 例 6.10 “遍历 dictionary” 中的程序清单――少了一个冒号。
2001-02-12 (2.4.1)
- 修改了新闻组链接,使用了 “news:” 协议。
deja.com
已死。 - 在下载链接旁标明了文件大小。
2001-02-12 (2.4)
- 为大多数章节添加了 “进一步阅读”,并在 附录 A, 进一步阅读 中汇总。
- 在纯文本格式的外部链接旁添加了 URL 地址。
2001-02-09 (2.3)
- 重写了 第 5 章 对象和面向对象 中的部分代码,使用了类的属性,并给出了一个更好的多值赋值的例子。
- 重新组织了 第 5 章 对象和面向对象,把类的部分提前了。
- 添加了 第 5.8 节 “类属性介绍”。
- 添加了 第 6.1 节 “异常处理”。
- 添加了 第 6.2 节 “与文件对象共事”。
- 把 第 5 章 对象和面向对象 中的 “回顾” 部分合并到了 第 5.1 节 “概览” 中。
- 给所有的程序清单和示例选择了配色方案。
- 修正了 第 2.2 节 “函数声明” 中的重大错误:函数会隐式地返回一个
None
,所以你 可以 在不触发异常的前提下把它的返回值赋给一个变量。 - 扩写了 第 2.3 节 “文档化函数”、第 2.4 节 “万物皆对象” 和 第 3.4 节 “变量声明”,使之更加清晰。
2001-02-02 (2.2)
- 编辑了 第 4.4 节 “通过 getattr 获取对象引用”。
- 为
xref
标记添加了标题,所以它们也能显示可爱的提示框了。 - 修改了修订历史页面的主题风格。
- 修正了我昨天在我的 HTML 中提到的 bug:后期处理脚本将会导致无效的 HTML 字符引用,甚至让一些浏览器无法显示。
- 升级到 DocBook XSL 样式表 1.29 版。
2001-02-01 (2.1)
- 重写了 第 4 章 自省的威力 中的示例代码,用
getattr
代替了exec
和eval
,并重写了相应的解释文字。 - 在 第 3.2 节 “List 介绍” 中添加了列表操作的示例。
- 在章节末尾的小节部分 (第 3.8 节 “小结” 和 第 4.9 节 “小结”) 添加了指向相关内容的链接。
2001-01-31 (2.0)
- 把 第 5.6 节 “专用类方法” 分成了三节: 第 5.5 节 “探索 UserDict:一个封装类”、第 5.6 节 “专用类方法” 和 第 5.7 节 “高级专用类方法”。
- 修改了关于 垃圾收集 的注解以指出 Python 2.0 及其后续版本自动处理循环引用,无需手工编码。
- 修复了 UNIX 下载,使之包括了所有相关文件。
2001-01-15 (1.9)
- 删除了 第 2 章 第一个 Python 程序 的概论。
- 删除了 第 4 章 自省的威力 的概论。
- 删除了 第 5 章 对象和面向对象 的概论。
- 大刀阔斧地改动文本。我似乎总是跑题。
2001-01-12 (1.8)
- 为 第 3.4.2 节 “一次赋多值” 添加了更多示例。
- 添加了 第 5.3 节 “类的定义”。
- 添加了 第 5.4 节 “类的实例化”。
- 添加了 第 5.6 节 “专用类方法”。
- 一些小的样式表调整,包括为
link
标记添加了标题。要是你的浏览器够酷的话,它会用一个可爱的提示框显示链接目标的描述。
2001-01-03 (1.71)
- 对样式表进行了几处修改,提高了对浏览器的兼容性。
2001-01-02 (1.7)
- 添加了 第 2 章 第一个 Python 程序 的概览。
- 添加了 第 4 章 自省的威力 的概览。
- 添加了 第 5 章 对象和面向对象 的小结部分[后来删除了]。
- 添加了 第 5.9 节 “私有函数”。
- 添加了 第 6.3 节 “for 循环”。
- 添加了 第 3.4.2 节 “一次赋多值”。
- 编写了把书输出为单个 HTML 文件、PDF、Microsoft Word 97 和纯文本的脚本。
- 注册了域名
diveintopython.org
并把书――在线的和离线的――都移到了那里。 - 修改了 XSL 样式表,以修改在每个页面首尾显示的导航链接。页首加上了域名、版本号,以及跳到章目录、总目录和主页的快速链接。
2000-12-11 (1.6)
- 添加了 第 4.8 节 “全部放在一起”。
- 完成了 第 4 章 自省的威力:在结尾添加了 第 4.9 节 “小结”。
- 在 第 5 章 对象和面向对象 的开头添加了 第 5.1 节 “概览”。
2000-11-22 (1.5)
- 添加了 第 4.6 节 “and 和 or 的特殊性质”。
- 添加了 第 4.7 节 “使用 lambda 函数”。
- 添加了附录 五分钟回顾。
- 添加了附录 技巧和窍门。
- 添加了附录 示例清单。
- 添加了附录 修订历史。
- 扩写了 第 3.6 节 “映射 list” 中映射列表的示例。
- 把更多的常用术语加入了 XML 实体。
- 升级到 DocBook XSL 样式表 1.25 版。
2000-11-14 (1.4)
- 添加了 第 4.5 节 “过滤列表”。
- 为 第 4.3 节 “使用 type、str、dir 和其它内置函数” 添加了
dir
文档。 - 在 第 3.3 节 “Tuple 介绍” 中,添加了
in
的示例。 - 添加了 MacPython 环境下
if
__name__
技巧的额外说明。 - 转向了 由 Michael Kay 编制的 SAXON XSLT 解析器。
- 升级到 DocBook XSL 样式表 1.24 版。
- 添加了 db-html 处理的说明:在每个章、节中都加上了显示的文件名,避免在添加或重排节时导致深层链接实效。
- 把一些常用术语加入了 XML 实体。
- 把几个
literal
标记改为了constant
。
2000-11-09 (1.3)
- 添加了关于动态代码执行的部分。
- 在所有有必要的地方,都添加了对本书其它部分的引用链接。
- 扩写了 第 2 章概览,解释了这个函数的实际作用。
- 显示地声明示例代码是在 GNU General Public License 下发布的;添加了该 License 的附录。 [Note 8/16/2001:代码在与 GPL 调和的 Python license 下重新发布了。]
- 修改了链接,以使用
xref
标记――我弄明白怎么使用了这个标记了。
2000-11-06 (1.2)
- 添加了第 2 章的前四部分。
- 进一步紧缩了了序言,并添加了指向 Python 的 Mac OS 版本的链接。
- 扩写了“映射列表”和“连接字符串”中的示例,使其更富逻辑性。
- 添加了第 1 章小结中的输出。
2000-10-31 (1.1)
- 完成了第 1 章关于映射、连接的部分,以及整章小结。
- 在序言使用了较缓和的措辞,并添加了针对非程序员的入门教程的链接。
- 修正了几处拼写错误。
2000-10-30 (1.0)
- 原始发布