貌似是第一本对python的实现进行讲解的书_Python源码剖析书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > Python源码剖析 > 貌似是第一本对python的实现进行讲解的书
丸子(^.^)v Python源码剖析 的书评 发表时间:2011-04-03 17:04:54

貌似是第一本对python的实现进行讲解的书


对平台对编译器的熟悉的重要性已经不需要再强调了吧~ 虽然表面上跟很多职位没有直接的联系~ 个人觉得对android源码的解读 对python perl以及一切优秀开源的底层产品的解读标志着你在公司里是不是不可取代的~ 最近甚至觉得, 对于拿着文档用一套API编程的位置, 比如iOS的编程, 你甚至不需要一个CS的degree, 没受过正规科班研究院训练的编程兴趣爱好者们看完文档上手就会, 换句话说公司随时可以炒掉你 在业务不景气节约工资支出的时候…… 话说其实读这本书感觉好辛苦~ 主要是之前一点都没接触过python源码, 然后断章取义滴看代码片段没有能在脑里形成一个清晰滴脉络, 个人推荐先自己读一遍python的源码 再来看相应的讲解会比较好, 我下的这本是结合2.4.1的版本讲解的。 感觉python各个版本变动还是有点打, 最郁闷的是向前兼容性不那么好, 看看有米有人再出点神马对3.X的版本进行解读的。 我目前用的是2.5.2.

也是在读这本书的时候, 我才知道Python的解释器是用ANSI C实现的~ 这就难怪python可以这么轻易滴跟标准C/C++代码整合。 这本书结合python 源码, 对于用系统编程语言实现动态脚本语言的过程中面临的各个问题及其解决方案, 以及python特色的实现原理都进行了讲解~ 结合自己感兴趣的python版本来看可以对编译器的构建有更实际的了解。 我意思是不像我们读大学那时候只是理论上懂得, 实际项目只做到词法解析那一层~

对于python初学者速成的话还是建议byte of python那本, 系统地学习基本功就建议python from novice to professional(python进阶), 或者python核心编程。 个人觉得读这本不会有太大帮助, 反而容易乱。

这本书对于熟练掌握C的程序员, 如果想要结合实际项目学习设计模式, 学习编译器构建等方面帮助会比较大, 或者对于还未熟练掌握C的, 作为学习看看指针, 数据结构方面比较好的实践也有帮助。 我意思是, 那里面列出的源代码都是值得仔细去读去体会的~ 从篇幅上看本书更注重对静态数据结构的分析, 对context和模块交互方面相对不那么详细, 这就是国人看问题的角度跟老外的差异, 上操作系统课是用的莱昂氏源码那本书的童鞋回忆一下就知道~

推这本书的原因有几点: 1. 它是读过第一本讲解释器方面比较切中要害的书, 抓主要矛盾来解决而不是像其他国产技术书籍对各个方面都一样的偏重, 有些还开讲一些历史啊 题外话啊啥的感觉就是纯占篇幅赚稿费的, 对真正的难点, 很多情况下也是真正的核心所在真正能让产品变得实用的处理轻描淡写讲得不清不楚; 2. 作者是我见过写技术书籍里最活泼的, 哈哈~ 和我是一个风格, 不知道会不会被人看作不严肃伪技术或者绕弯骗稿费…… Anyway在这样的气氛下一路看过来不会觉得疲倦, 感觉就像一个朋友坐你对面跟你侃侃而谈; 3. 短小精悍, 全书正文部分就130页, 呃~ 起码我拿到手的电子版就130页~ 一个周末就读完鸟~ 这样你可以一个周末读一遍, 多读几个星期加深理解, 实在理解不了的地方还有作者的邮箱可以沟通交流一下。 顺应了当前的快餐文化这个背景 大家都浮躁嘛^_^ 话说我也是读了好多遍才来写这个书评的, 感觉千言万语不吐不快临到纸上又觉得都是废话不应该搬出来浪费大家时间…… 囧~ 话又说上研究生以来读的貌似大多数都是速成的东西, survey连图不超过60页, 一般论文不超过20页, 其实是15页的都少, 基本10页 11页这样, 教程都不是什么21天精通XXX了, 而是一刻钟会用XXX ^_^v

好吧说啦辣摸多 以下是我读完后对本书, 或者python的一个总结:

Python的运行时环境包括对象/类型系统(Object/Type structures),内存分配器(Memory Allocator)和运行时状态(Current State of Python)。

Python的核心是解释器(interpreter)。其中Scanner对应词法分析,将文件输入的Python源代码或从命令行输入的一行行Python代码切分为一个一个的token;Parser对应语法分析部分,在Scanner的分析结果上进行语法分析,建立抽象语法树(AST);Compiler是根据建立的AST生成指令集合, 也就是Python字节码(byte code),最后由Code Evaluator来解释并执行这些字节码。因此,Code Evaluator又可以被称为执行引擎。

像java一样 (感觉很多东西都跟java很靠拢啊 Java的设计真的很优秀很前瞻性啊) , python也有维护数据结构维护 变量值跟变量的映射关系; 另外为了减小申请系统资源这个操作对性能的影响, 大量滴运用了pool, 各种pool各种预取预分配, 这里要注意的一个地方是, 预取的量不是用什么context awareness的算法来决定的, 是… 是根据大量的实验及对结果的观察分析决定的; 所有的对象都有一个共同的老祖宗, 类似java里的object, 维护一个所有对象类型共同的头结构; 一些很麻烦的事情, 放在程序初始化的时候做, 表现出来就是可能启动慢了一点, 但一旦启动了可以运行得 比较快那样~ python基于C的各种基本数据结构 建立了各种内建数据类型 像map list dict那些的……

感受最深的一点是无论 java还是python 或者php, 字符串的事情是最纠结的~ 进行字符串操作前一定要搞清楚代码将如何执行 bufferstring.append(string)的效率要比 string+string高多了 如果到服务器端每秒需要运行上千次的语句 这种差异一下就能看粗来~

最后 期待哪位达人对android也写一本类似的作品~

展开全文
有用 5 无用 2

您对该书评有什么想说的?

发 表

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“貌似是第一本对python的实现进行讲解的书”的回应

跬步... 2015-02-16 20:46:32

有看书的时间把代码看看就可以了,真是一帮水军,忽悠吧

丸子(^.^)v 2015-01-02 11:57:55

正在精读那本 挺不错的^ ^

阿波 2015-01-02 11:53:42

邓凡平的深入理解android,http://book.douban.com/subject/6802440/,不知道是否符合楼主的期许。

Uncle Charlie 2014-07-27 18:05:07

评论很好,我个人唯一不太赞同的是"个人推荐先自己读一遍python的源码 再来看相应的讲解会比较好". 源码真的太多了,这本书的一个重要意义就是能快速地帮助读者对源码形成结构化的脉络,通过重点代码的解读把主要问题解决掉.后面再扫读效率就能高很多,毕竟时间是宝贵的啊,尤其是对我这种渣,直接啃源代码要没法活下去的.

丸子(^.^)v 2011-05-05 21:56:02

=。= 呃~ 那看来我拿到的是不完全的版本 要不你那影印版传我一下?

ayanamist 2011-05-05 21:31:31

我这里的影印版是511页……