推荐序一
让我们做得更好.
Python,我想已经不再是个陌生的词了,越来越多的人开始学习它,使用它,宣传它,甚至用它找到了工作。如果你了解Python,那么我想问一下,你对它有多了解呢?它是一种什么语言?如何实现的?有哪些对象,它们是如何处理的?你了解Python的虚拟机吗?了解它的运行环境吗?其实作为初学者或只是使用者,你的确不必了解这么多细节的内容,但是探究事物的原理,分析底层细节却也是许多人成为高手、“老鸟”的原因,因为你知道别人不知道的东西,掌握了别人不了解的技术,这些内容使得你的见解、分析,甚至作品都可能超过别人。那么本书就向你提供了一个了解Python底层细节的机会,你可以沿着作者的思路和角度去体会Python的工作原理和底层的细节,一点一点地了解Python源码的精妙之处,有助于更好地掌握Python并编写出高质量的程序。
本书的内容深入到Python的方方面面,像Python的对象实现机制是如何用C来表现的;对象的特性是如何实现的;对象是如何管理的;不同对象,如int、str、dict、list等的处理;Python的虚拟机框架、作用域的实现;运行时环境,pyc文件,类机制等。还有一些高级话题,如内存管理,GIL(Global Interpreter Lock)与多线程,模块动态加载等。
在接触到本书之前,我已经在作者的Blog上见到过部分内容,那时已经被作者不懈的毅力和深厚的功力折服。说实话,由于经常接触Python,对于原本熟悉的C语言也越来越陌生,更不要说去“啃”Python的C代码了。而Robert Chen可以从源码中进行有条理的分析和整理,并终于出版此书。这不仅让人敬佩,更让广大的Python爱好者受益多多。因此,当出版社希望我为本书作一个推荐序时,我毫不犹豫地答应下来。
第一次见到Robert Chen还是在CPUG的一次会课上,那时Robert Chen给大家带来一个主题为“Python作用域与名字空间”的讲座,让在座的Pythoner对Python的作用域机制有了更深入的理解,讲座效果非常好,讨论也很热烈。他从源码的角度讲述了Python的一些规则,使得大家的理解不再停留在形式上或规则上,而达到了本质或实现的层次,让我们“知其然,更知其所以然”。
如果你是一位热心的Pythoner,想必会知道中文Python的邮件列表(http://groups. google.com/group/python-cn),从上面对有些问题的回复中,你会发现Robert Chen总是从源码及字节码实现的角度来回答问题,非常有说服力。因此当许多Python爱好者得知Robert Chen将出版此书时,都非常盼望,现在这本书终于出版,大家都深感庆幸!
本书不仅仅是高水平、高质量的一本书,纵观国内外与Python相关的书籍,它也是第一本从源码角度写作的书,所以意义非常。目前国内原创的Python书籍还不多,就我所知国内已经出版的几本Python方面的书尚不能满足读者需求,而本书应该不会让你失望。
不过本书应该不是面向初学者的书,因为它涉及了许多较深的内容和知识,建议读者应先掌握像C语言、数据结构、操作系统、编译原理等方面的基础知识,并且具备一定的编程经验,才能更好地理解书的内容。
再次感谢Robert Chen带给大家的这份礼物!
李迎辉
limodou@gmail.com
2008年春
推荐序二
真的难以想象,Python语言和社区能够发展得如此迅速。在我第一次使用Python完成我的项目时,它还不过是一个刚刚在开源社区中起步的新生儿,然后在各方面迅速推广,4月8日,google发布的App Engine更是让所有的开发人员眼中一亮。相信今后会有更多的开发人员投入到Python的技术领域中来。
记得在2002年时,我使用Python写了一套大规模的消息系统,几位同事分别使用Python、Java和C完成了一个异步二进制消息流的客户端和服务器。通过一系列测试,大家惊奇地发现Python以每秒一倍的数据处理量超过了C写的代码。后来,我的同事细心地查看了Python的源代码,发现了几种完全不同的操作系统调用方法,以及为提高性能而使用的技巧。这也是我第一次开始查看Python的源代码。最近的一次则是我在xBayTable中使用asyncore时,通过阅读asyncore的源代码排除了一个痛苦bug,轻松地找到了问题的根源,很快就换了一种解决方案来继续我的工作。了解Python的源代码,我们能获得很多的好处:
使用Python方法提高自己的代码性能和功能;..
快速地与文档结合,解决问题或是找出方法;
扩展Python。
.我常将所有的书分为口袋书、马桶书、枕头书。RobertChen的《Python源码剖析》,更多讲述的是CPython中的实现技术和方法。这可以让我们从不同的层面了解Python简洁背后的机理。我更推荐大家把它当做口袋书,在准备书写Python扩展前把它作为一本工具书,配合“Extending and Embedding the Python Interpreter”会让你更容易地完成你的工作。另一方面,当你想使用Python这种方法解决问题时,这本书也可以成为你的好伙伴,它让你更多更快地了解Python是怎么做的,从而做得“和Python一样”。当你对Python的一些问题百思不得其解时,这本书也许可以从不同的方面帮助你了解它最底层发生的故事。
最后,作为Python社区的长期参与者,希望更多的代码人不但能使用Python语言去完成自己的工作,也希望能有更多的人通过这本书成为Python语言的开发者,更希望中国有越来越多的Python开发者。
黄冬
2008年4月于北京
下雨的深夜
推荐序三
非常高兴看到又一本原创的Python图书出版。
说起来,我和Python还算有一点缘分。在2000年的时候,一次非常偶然的机会我接触到Python,当时网上的资料非常少,不知天高地厚的我竟冒失地接手了国内第一本引进版Python图书的合作翻译工作,往事不堪回首。记得当时经常有人问我Python能用来做什么……而我能举出来的例子的确寥寥可数。
历经数年的发展,Python已今非昔比,各领域都不乏Python的成功案例。就拿Web方面来说,正如PHP给Yahoo!带来的巨大动力,Python在新一代的互联网霸主——Google内部早就充当了重要角色,成为排名第三的“官方语言”。而就在前一段时间,Google革命性的App Engine产品一经推出立即引起了莫大关注,其首选开发语言就是Python。
纵观国内技术环境,Python语言仍处于慢热的状态,应用仍然不算广泛。不过我们也已经有称得上比较成功的实现案例了,比如著名的Web 2.0的代表站点——豆瓣网即是用Python开发的,创始人杨勃对Python的效率和优雅赞誉有加。
Python也是权威机构TIOBE评出的2007年度编程语言,这些“利好”的消息也将进而带动新一轮的技术走向,预示着Python更大规模的流行时代即将到来。
话说回来,“开放平台”在未来几年一定是个不可避免的技术趋势,而跟着大厂商的平台亦步亦趋,照猫画虎,想必也能开发出来繁多的周边应用,但开放未必对所有人都是个好事情,久而久之开发者难免有盲人摸象之感,很难掌握全局,掌握关键架构技术,故深入研究Python的基础技术仍不可少。这本《Python源码剖析》的出版恰是好时机,弥补了国内图书在这方面的空白,此外,作者在Python领域的精耕细作的研究精神亦值得学习。
研读、分析源代码乃是提高编程技能的一条捷径,庖丁解牛方能游刃有余,夯实基础方可构建高楼大厦。
读这本《Python源码剖析》就像一次探险之旅,祝愿朋友们能够获得一次愉悦的阅读体验。
冯大辉
2008年4月于杭州...