当前位置: 首页 > Linux

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

时间:2023-04-06 23:30:33 Linux

大家好,新书推荐栏目如期与大家见面。来看看今天的主角是谁吧:《Python源码剖析——深度探索动态语言核心技术》,2008年出版,作者@陈立,评分8.7。是的,你没看错,出版年份是2008年,本书基于Python2.5。到十年后的3.7版本,可以说大部分内容已经过时,很多关键内容可能会缺失。那么你可能会问,有什么好的推荐过时的书吗?现在让我慢慢告诉你。一个巧合,一种期待在写第一本推荐书《编写高质量代码改善 Python 程序的 91 个建议》的时候,无意间发现知乎上有人提到@赖永浩大大正在接手这个源码分析的新版本的写作,很多人留言说期待。记得看到有人推荐这本书,就去看看。书的引言中有这么一段话,读完觉得兴趣盎然:本书以CPython为研究对象,从C代码层面深入细致地分析了Python的实现。本书不仅包括大量Python内置对象的分析,还投入大量篇幅对Python虚拟机和Python的高级特性进行分析。通过本书,读者可以深入了解Python中通用表达式、控制结构、异常机制、类机制、多线程机制、模块动态加载机制、内存管理机制等核心技术的运行原理。所揭示的动态语言核心技术对于理解其他动态语言,如Javascript、Ruby等也有很大的参考价值。作为一名刚刚走出新手村的Pythoner,我正在为如何成为一名优秀的Pythonista发愁。本书闪耀着绝世秘籍的光芒。起初我有点犹豫,但后来我很想尝试一下。那么,新书什么时候出呢?华芒用户群里,刚好有人问起这个消息,群众纷纷表示迫不及待。不过,赖永浩站出来回复道:看回复的时间,已经一年了……虽然这位神秘的新作者推迟了稿件,但对本书的期待并没有减少,相反,这是正是意味着新书的发售日期越来越近了!也许会在明年上半年。在新书出版前,我们先来推荐书栏安利一下。这绝对是有远见的事情。喵喵,太开心了~~~一个大纲,一些建议已经铺垫好了,接下来就说说这本书的内容吧。以下内容仅针对本书08版。新版发布后,图书推荐栏会跟进,介绍两个版本的差异。本书主要分为两部分。第一部分(第1-6章)分析了Python的几种内置对象(如整数、字符串、列表和字典),涉及对象的创建、维护、缓冲池、提高效率的机制等;第二部分(第7-16章)分析Python虚拟机,涉及虚拟机框架、通用表达式、控制流、函数机制、类机制、运行时环境初始化、动态加载机制、多线程机制、内存管理机制等。据说Python中的一切都是对象。而Python是用C语言实现的,是典型的面向过程的语言。那么,它是如何实现“万物皆对象”的呢?实际上,Python对象就是C结构在堆上申请的一块内存(包括连续内存和非连续内存),所有内置类型对象都是静态初始化的。按照书中的分类,Python对象可以分为:其中,Fundamental对象是指类型对象,Numeric对象是指数值对象,Sequence对象是指容纳其他对象的序列集合对象,Mapping对象是关联类似于C++Object中的maps,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猫】,后台回复“爱学习”,送20+精选电子书。往期推荐书籍回顾:第1期:《编写高质量代码改善 Python 程序的 91 个建议》第2期:《Python最佳实践指南》第3期:《黑客与画家》延伸阅读:陈茹博客:https://blog.csdn.net/balabal...豆瓣参考书目:https://book.douban.com/subje...Python源码:https://svn.python.org/projects/书评笔记:https://book.douban.com/revie...https://blog.csdn.net/lxlmycs...