Python 书籍已经开始稳步占据着书店书架空间的更大份额。自从我开始发表这些综述以来,现可称为“废品”的有关 Python 的书籍数量可能已经是原来的四倍。而这还不包括许多在 Web 上发布的有关 Python 的出色的电子文档(包括一些未经删节的书籍)。本文谈及的几本 Python 书籍已在前几个月就放到了我的书架上。
与 Web 相关的书籍
关于 Python 和 Web 的两本书
我最近看到两本书:Holden 和 Beazley 合著的 Python Web Programming以及 Thiruvathukal、Christopher 和 Shafaee 合著的 Web Programming in Python,它们涉及的材料范围几乎相同。这两本书的反响都很好,体现它们各自的出版商 New Riders 和 Prentice Hall 的极佳信誉。很难推荐这两本书中哪一本比另一本更好,所以让我指出一些区别。
Python Web Programming对用 Python 语言进行 XML 编程进行了相当好的介绍。虽不如 Python & XML(将在下面进行讨论)那样面面俱到,但它是一本实实在在的入门教材。与此相反, Web Programming in Python省略了 XML,但提供了对 Linux、Apache 和 MySQL 的介绍(就象其完整的书名指出的那样)。这两本书都用了大约 100 页的篇幅来解释 Python 本身,但 Python Web Programming在介绍 Python 的同时,花了更多的笔墨在随 Python 提供的通用联网库上。两本书都根据所涉及的不同主题以一些具体的样本应用程序作为结束,但如果您的目标是要使用这些样本作为自己开发项目的模板,那么 Web Programming in Python或许是个更好的选择 — 与此同时, Python Web Programming对此更多的是给人一点参考大全/学术的感觉。
两本书都包含索引,但 Python Web Programming在索引中添加了一张词汇表(在因特网首字母缩写词的领域方面很有用)和一份关于 Python 版本变更情况的附录。选择任何一本书都不会有错(假定您正在寻找有关 Python 和 Web 的书籍),但对于网站开发人员来说, Web Programming in Python感觉起来更有用一点。假定您 确实想要将 Linux、Apache 和 MySQL 与 Python 一起使用,那么 Web Programming in Python 足以满足要求,而无需两三本其它书籍。当然,如果您坚持对于站点使用 Windows,或更糟糕地,还使用 IIS/MSSQL,那么 Web Programming in Python中很少有内容会与此有关。 Python Web Programming(大部分内容)始终坚持讨论与跨平台相关的内容。
Python & XML
Jones 和 Drake 合著的 Python & XML的缺点是,如果您想要在 Python 中使用 XML,那么必须买这本书。我以前评论过 McGrath 的 XML Processing with Python,它涉及相似的内容范围。但就所有各方面而言,我更喜欢 Jones 和 Drake 的书。 Python & XML的文字很清晰、详细而且通常很精确 — 当然是与它解释的 XML 标准文档相比较而言。有几处叙述 XML 复杂性特点的地方稍有错误 — 诸如第 27 页上暗示有四个而不是五个固有实体(遗漏了 &)— 但总体上,这是我遇到的理解 XML 的最佳书籍。
不管标题有没有指出, Python & XML确实是一本有关 XML 的书,而不是有关 Python 的书。也就是说,它没有象标题所说的那样包含对 Python 语言的解释 — 它假定读者了解 Python(但不必了解 XML 库)。所讨论的 XML 库基本上有四部分:Python 2.0+ 中的内置支持;(XML-SIG 的)PyXML;Fourthought Inc. 的 4Suite 和用于 MSXML 的绑定(在 Windows 上)。对于一些其它库在附录中有简短的叙述。总体上,该书中的示例与 Python 的标准库 XML 支持兼容。
学习该语言的书籍
Python Programming Patterns
Thomas W. Christopher 的 Python Programming Patterns是 Python 资源库中不可多得的好书。很明显,该书旨在作为著名的 Design Patterns: Elements of Reusable Object-Oriented Software(由“四人组(Gang of Four (GoF))”— Gamma、Helm、Johnson 和 Vlissides — 编写)的参考书。但 Python Programming Patterns实际上并不是将 Design Patterns的内容用 Python 示例摘要重述;而是在它尝试那样做的同时, 还试图成为介绍 Python 本身的第一本书。有关 Christopher 这本书的几篇引人注目的负面评论已经出现在 comp.lang.python 上。虽然我承认这本书有一些缺点,但我认为某些评论的想法误解了该书的意图。
我认为 Python Programming Patterns不象一本关于 Python 的书,而象一本关于编程的书。每章都介绍了一些新的 Python 构造,而同时使用那些构造来解释几个常规的计算机科学概念。同样,Christopher 书的对象不是那些设法了解 Python 的读者,因为它是一本介绍计算机科学中级课程的书。甚至高级程序员在阅读时,也会觉得一些常规概念很有趣。也就是说,为了最好地达到其写作目的, Python Programming Patterns花了过多的时间来解释基本的 Python 构造。已深入学习而足以理解“模式”的读者能比学这本书更快地 掌握Python 语法;而刚开始编程的读者则可能完全迷失在抽象概念中。总之,该书可以更集中地讨论几点内容。