附录 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 (假) 分别改为了 TrueFalse
  • 更新了 例 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 介绍” 中首字母未大写的错误。应该是 TrueFalse,而非 truefalse。感谢所有指出这一点的读者。
  • 修改了 第 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.pyparsephone.pyplural.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 + otherli.extend(other) 等价。操作结果的确相同;但 extend 更快,因为它不会创建新 list。感谢 Denis 指出。
  • 修正了 第 3.2 节 “List 介绍” 中的错误:我曾说 li += otherli = 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 中解释why join is a string method (为什么 join 是字符串方法) 而不是 list 方法的这一新条目。
  • 重写了 第 4.6 节 “and 和 or 的特殊性质”,强调了 andor 的基本性质;并且不再强调 and-or 技巧。
  • 把语言比较重新组织为了 note

2001-02-28 (2.6)

  • 给 PDF 和 Word 版本加入了彩色的示例文本、改进后的目录,以及缩进良好的 tipnote
  • 现在 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 代替了 execeval,并重写了相应的解释文字。
  • 在 第 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)

  • 原始发布