要不这样吧,如果编程语言里有个地方你弄不明白,而正好又有个人用了这个功能,那就开枪把他打死。这比学习新特性要容易些,然后过不了多久,那些活下来的程序员就会开始用 0.9.6 版的 Python,而且他们只需要使用这个版本中易于理解的那一小部分就好了(眨眼) 。
—— Tim Peters
传奇的核心开发者, “Python 之禅”作者
这本书的目的是什么?
第十一章的杂谈里给出了答案:
这正是本书的主要目的:着重讲解这门语言的基本惯用法,让你的代码简洁、高效且可读,把你打造成熟练的 Python 程序员。
另外本书的前言里也有提及书本的目标读者和非目标读者。
如果你才刚刚开始学 Python,本书的内容可能会显得有些“超纲”。比难懂更糟的是,如果在学习 Python 的过程中过早接触本书的内容,你可能会误以为所有的 Python 代码都应该利用特殊方法和元编程(metaprogramming)技巧。我们知道,不成熟的抽象和过早的优化一样,都会坏事。
对内容的一些评价
从书目录结构来看,作者的眼界十分开阔,每章最后有小结、延伸阅读、和相关的一些杂谈。书的前一部分从 Python 特性出发,参考了很多语言的相关做法和实现,来解释 Python 的设计。
书中时常引用一些参考资料,有些是邮件列表里的讨论、维基百科、一些十分优秀的程序员的撰写的文章和演讲视频。这意味着你可以在某一个概念看到不同的观点,看到优秀的程序员是怎么思考一个问题的。
作者从1998年成为了 Python 程序员,是巴西一家培训机构的共同所有者,也为巴西的媒体、银行和政府部门教授 Python 课程,由此可见本书的代码会是十分透彻和浅显易懂的,事实也的确如此。从代码示例来看,作者为大部分代码提供了 doctest 测试,并且在为某一个知识点提供代码示例时,追求的是简单、直接,同时示例的难度是循序渐进的。加上作者在大部分代码行提供了说明,让读者能十分流畅地理解概念。(对比:《Go 程序设计语言》讲复数语法时用 Mandelbrot 图像作为示例,苦笑)