Python猫荐书系统之四:《Python源码剖析》

栏目: Python · 发布时间: 5年前

内容简介:大家好,新一期的荐书栏目如期跟大家见面了。先来看看今天的主角是谁:《

Python猫荐书系统之四:《Python源码剖析》

大家好,新一期的荐书栏目如期跟大家见面了。

先来看看今天的主角是谁:《 Python源码剖析——深度探索动态语言核心技术 》,2008年出版,作者 @陈儒 ,评分8.7分。

Python猫荐书系统之四:《Python源码剖析》

是的,你没看错,出版年份2008年。这本书基于 Python 2.5,到了十年后3.7版本的年代,可以说大部分内容已经过时了,而且,还可能缺失了很多关键内容。那你也许会问,一本过时的书,有啥好推荐的呢?下面且听我给你慢慢道来。

一个巧合,一份期待

在写第一篇荐书《 编写高质量代码改善 Python 程序的 91 个建议 》的时候,我偶然发现知乎上有人提及,说 @赖勇浩 大大正在接手这本源码剖析的新版本编写,很多人留言说期待。我想起曾经看到,有人推荐过这本书,于是便去查了一下。

书的内容简介中有这一段,我看了便觉得兴趣满满:

本书以CPython为研究对象,在C代码一级,深入细致地剖析了Python的实现。书中不仅包括了对大量Python内置对象的剖析,更将大量的篇幅用于对Python虚拟机及Python高级特性的剖析。通过此书,读者能够透彻地理解Python中的一般表达式、控制结构、异常机制、类机制、多线程机制、模块的动态加载机制、内存管理机制等核心技术的运行原理,同时,本书所揭示的动态语言的核心技术对于理解其他动态语言,如 Javascript、 Ruby 等也有较大的参考价值。

作为一个半路上车,刚走出新手村的Pythoner,我正愁如何才能成为一个优秀的Pythonista,这本书闪耀着绝世秘籍的光芒,我起初有点望而却步,过后却又跃跃欲试。

那么,新书啥时候上市呢?在 华蟒用户组 里,正好有人问到这个消息,群众们纷纷表示翘首以待。不过,赖勇浩站出来回复了:

Python猫荐书系统之四:《Python源码剖析》

看回复的时间,这事已经过去一年了......

虽然这个神秘的新作者拖稿了,但书的期待值并未因此减损,相反,这恰恰意味着新书上市之日更近了!说不定就在明年上半年了呢。赶在新书出版前,我们荐书栏目先来安利一波,这绝对是一件有先见之明的事,喵喵,美滋滋~~~

一份提纲,一些建议

铺垫了这么多,接下来要好好说下这本书的内容了。以下内容仅针对08版书籍,等新版上市后,荐书栏目会对两版的差异跟进介绍。

全书主要分两部分,第一部分(1-6章)剖析Python的几大内建对象(如整数、字符串、列表、字典),涉及对象创建、维护、缓冲池、提升效率的机制等内容;第二部分(7-16章)剖析Python虚拟机,涉及虚拟机框架、一般表达式、控制流、函数机制、类机制、运行环境初始化、动态加载机制、多线程机制、内存管理机制等内容。

有道是,Python中万物皆对象。而Python是用 C语言 实现的,C语言却是典型的 面向过程语言 ,那么,它是如何实现”万物皆对象“的呢?实际上,Python对象是C的结构体在堆上申请的一块内存(包括连续内存与非连续内存),所有内建的类型对象都是被静态初始化了的。

按照书中的分类,Python对象可分如下:

Python猫荐书系统之四:《Python源码剖析》

其中,Fundamental对象是指类型对象,Numeric对象是指数值对象,Sequence对象是指容纳其它对象的序列集合对象,Mapping对象是类似于C++中map的关联对象,Internal对象是Python虚拟机在运行时内部使用的对象。

还有一种分类方式,Python对象可以分为定长对象 与变长对象。从这些分类中可以看出,Python对象之间存在着天然差异,那么,不同对象的生命周期管理(创建、维护、使用、回收)、对象的多态、对象缓冲池、以及其它特有的机制,这些都是怎么实现的呢?

书中第一部分内容就是对以上问题的回答。阅读过程中,我读到了一些熟悉的内容,例如之前在《 Python中的“特权种族”是什么? 》中发明的“特权种族”(例如神秘的[-5,256]数字、以及Intern机制的短字符串),它们在内建对象剖析的部分里都有。阅读的过程,就是从知其然,到知其所以然的过程,于我大有益处。

说实话,源码分析的部分,对我来说太难了,因为C语言基础早已交还给大学老师了......但是,阅读第一部分的好处是,你不必完全懂源码,因为作者加了很多注释,相关的分析过程也很详尽。

至于书中的第二部分,我还不敢进入。这部分需要一些编译原理知识、字节码及虚拟机知识。留待今后继续学习。

全书章节的编排结构特别清晰,已经提供了一份很好的学习路径提纲。这里,我还搜集了一些阅读建议,下面看看有什么:

如果你在用一门高级语言,想了解语言的实现原理,这本书是你的必选;如果你是一个 C/C++ 程序员,想写出高质量的程序,这本书也是你必选。—— @simonliu

需要说明的是,我不会向python语言的学习者推荐这本书,因为它不是一本python语言的教材。相反,作为分析Python运行时机制的专著,书中充斥着有关C、C++的讨论(我还读到了有用 java 做为比较的段落)。这不要求读者是专业的C/C++程序员,但是至少应该能够读懂C代码,最好知道 C++ STL是怎么回事。......我坚信,这本优秀的著作,值得译为英文,向全世界的C/C++/Python程序员推荐。——@膘

很好的讲解Python源码剖析的书籍,深入讲解了Python的各种特性是如何通过C语言实现的,对于想了解Python底层实现的 程序员 很有帮助,讲解的很详细,不过看底层C实现看多了也确实容易乏味、消磨耐性,尤其后面高级特性的剖析时,看起来愈发吃力、费劲。 目前先通读了一遍,帮助自己了解了Python的不少特性和其底层机制,还有很多地方草草略过并不十分明白,日后实力更上一层楼时,再回来拜读。 好书推荐!——@流星云

源码可以不读,这本书还是值得读的。——@赖勇浩

常备的手边书,深入了解Python的好书。——@清风

一份资源,更多福利

相信能够读到这里的读者,都燃起了一些阅读兴趣,可以“按图索骥”去学习。电子学习资源很多,对于 爱学习 的你们来说,这不是啥难事。豆瓣读书、当当网和京东图书上,也有电子书可购买。

但是,如果你想买纸质书,不好意思,早就绝版了。二手旧书的价格贵得吓人,下面讯息给不差钱的同学们参考下:

Python猫荐书系统之四:《Python源码剖析》

在中英文的Python书籍中,这本剖析源码的书籍,可能是绝无仅有的一本,就凭这点,怎么推荐都不为过。对于可能会很快上市的新书,则是怎么期待都不为过的。如果有小伙伴知道出版消息,恳请在后台告知于我,不胜感激。

在荐书《 黑客与画家 》的时候,我们送出了一本精装书福利。等到这本源码剖析的新书上市时,送书福利肯定会是大大的,大家拭目以待吧。当然,后续其它荐书的书目,也很有可能会送福利,一样不容错过。所以,我要打个小广告,还没关注的小伙伴,赶紧扫描下方二维码,立刻关注公众号 Python猫 ,关注我们的荐书栏目,让我们一同学习,一同进步,一同抢福利,喵喵喵~~~

本文原创并首发于微信公众号【Python猫】,后台回复“爱学习”,免费获得20+本精选电子书。

往期荐书回顾:

第一期:《 编写高质量代码改善 Python 程序的 91 个建议

第二期:《 Python最佳实践指南

第三期:《 黑客与画家


以上所述就是小编给大家介绍的《Python猫荐书系统之四:《Python源码剖析》》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Scratch少儿趣味编程

Scratch少儿趣味编程

[ 日] 阿部和广 / 陶 旭 / 人民邮电出版社 / 2014-11 / 59.00元

Scratch 是麻省理工学院设计开发的一款编程工具,是适合少儿学习编程和交流的工具和平台,有中文版且完全免费。本书结合孩子们学习的语文、数学、科学、社会、音乐、体育等科目,手把手地教大家如何用Scratch 设计程序(如设计一个自动写作文的程序),配合各式卡通形象,通俗易懂,寓教于乐。麻省理工学院教授米切尔•瑞斯尼克作序推荐。 本书图文并茂,生动风趣,适合中小学生等初学者自学或在家长的帮助......一起来看看 《Scratch少儿趣味编程》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具