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

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

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

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源码剖析》》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Host Your Web Site In The Cloud

Host Your Web Site In The Cloud

Jeff Barr / SitePoint / 2010-9-28 / USD 39.95

Host Your Web Site On The Cloud is the OFFICIAL step-by-step guide to this revolutionary approach to hosting and managing your websites and applications, authored by Amazon's very own Jeffrey Barr. "H......一起来看看 《Host Your Web Site In The Cloud》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具