相当不错的Python进阶读物_Python高级编程书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > Python高级编程 > 相当不错的Python进阶读物
[已注销] Python高级编程 的书评 发表时间:2012-12-22 13:12:30

相当不错的Python进阶读物

需要说明的是,当我找到还有这么一本书的时候,亚马逊、京东、当当等网站已经没得中文版卖了,而我又懒得上淘宝上折腾,所以干脆就看的英文版的pdf,没想到我这八年没学英文的水平居然能够一字不落的看下来而且觉得挺带感,看样子作者的书写得还是很不错的。

首先要说的是整本书并不厚,也就300多页,内容集中在Python的一些高级特性和技巧上,内容包括:列表推导式、迭代器和生成器以及协程、装饰器,contextlib用法、类的进阶主题(多重继承、mro、描述符和属性以及元编程等)。在这些基础内容之后还有关于包的编写,用Python构建大型应用、代码管理以及测试调优的话题。最后还简单讨论了几个在Python下常用的设计模式。整本书只涉及高级议题,所以并不是循序渐进的,思路上每章都是独立的,因此可以单独学习。

简单谈谈对书中的基础内容的评价:
1.书里谈到的内容作者大都指出了应用情景,这对于希望深入学习Python,提高编程技术的同学来说是很有帮助的,也是我对这本书最满意的地方。

2.关于生成器,从Java转过来的同学可能会很不熟悉,或者说不习惯其用法,因为Java从来都没有这玩意,今后也不一定会支持。就像Java以后也很有可能不会支持闭包一样。但是这个东西用好了其实是个很有威力的东东,尤其是Python2.5以后开始通过生成器支持协程,尽管只是部分实现,仍然可以让我们一窥协程的威力。但是关于协程的的资料一直都不是太多,与python协程有关的就更少了。这里推荐几篇文章:
1)PEP 342:http://www.python.org/dev/peps/pep-0342
这个PEP是Python通过生成器支持协程的根本,其中还包含了几个编程示例。属于了解Python协程必读的文章。
2) A Curious Course on Coroutines and Concurrency: http://www.dabeaz.com/coroutines/index.html
这是Python参考手册的作者写的一个关于协程的教程,曾在PyCon09上发表过。入门的好材料。
3)Indie之路的Blog里关于协程的三篇文章:http://ravenw.com
这三篇文章对协程的介绍很详细,但是风格很学术,带有很多术语,非科班出身的人看起来大概有点困难。作者结合语言特性谈了谈一些跟协程有关的深入话题。老实说,我也没全看懂,但是这三篇文章写得确实不错。

3.关于装饰器
这本书对装饰器的介绍可以说是我看过的书里最详细最好的,甚至比很多人推荐的Dive Into Python都介绍得多。同时,作者列出了装饰器使用时的主要情景,思路非常清晰。读了这一章,你就不用再费心在网上去找那些到处Copy的关于装饰器的Blog了。

4.contextlib
这个用的人估计不是很多,因为这东西是为了跟with语句联用准备的,可以很方便的让函数也支持with语句。不过with语句是Python3的特性(Python2.6以后的版本可以通过__future__模块启用with语句)。with的好处就是在语句块内的代码执行完毕后可以保证最后执行一段代码,比如关闭资源等。这也是个高级技巧,用好了会很方便。

5.关于类
Python的类的话题有两个主要的子话题,一个是新式类和旧式类,一个是多重继承。第一问题是Python的历史遗留问题,第二个问题跟Python的MRO(Method Resolution Order)有关。关于Python的旧式类和新式类的区别和存在原因可以参考StackOverflow上的这个帖子下面的最佳答案:http://stackoverflow.com/questions/54867/old-style-and-new-style-classes-in-python.
关于多重继承,这里更多的是要注意MRO带来的陷阱。书中有详细的介绍与讨论,是Python程序员必须掌握的内容。

总的说来,这本书内容还是相当有分量的,谈到的话题比较深入,但是也有不足:

首先是这本书是2008年出版的,因此内容已经有些过时了,尽管有相当多的地方,作者已经提到了Python3的一些变化,但整本书依旧还是以Python2为主。同时,有些包也已经有些过时了,比如谈协程的时候,作者使用的包是eventlet,现在更多的(至少我看国内很多人)用的是gevent。所以,个人还是非常希望这本书出第二版更新的。

除此之外,这本书缺少对于调试工具的介绍,我很郁闷的一点是,最近没能找到对Python的pdb工具进行详细介绍的资料,看样子这本书也没有提,非常遗憾。

展开全文


推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“相当不错的Python进阶读物”的回应

lightinglei 2013-08-04 21:31:00

我觉得,只是我觉得,stackless也还可以,相对gevent,当然没有在大规模并发下测过

lightinglei 2013-08-04 21:29:25

装饰器那边,我使劲看,还是迷迷糊糊

[已注销] 2013-01-05 16:49:29

@Honghe 这本等把基本打牢了再看吧,有些高级特性不是那么快就学得会的,比如slots这东西,用不好会很要命的。尤其是构建大型应用,一样会很复杂。

Honghe 2013-01-05 14:56:58

看中文版的说挺吃力的