摘要:以下內容僅針對版書籍,等新版上市后,薦書欄目會對兩版的差異跟進介紹。當然,后續其它薦書的書目,也很有可能會送福利,一樣不容錯過。
大家好,新一期的薦書欄目如期跟大家見面了。
先來看看今天的主角是誰:《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語言實現的,C語言卻是典型的面向過程語言 ,那么,它是如何實現”萬物皆對象“的呢?實際上,Python對象是C的結構體在堆上申請的一塊內存(包括連續內存與非連續內存),所有內建的類型對象都是被靜態初始化了的。
按照書中的分類,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貓】,后臺回復“愛學習”,免費獲得20+本精選電子書。
往期薦書回顧:
第一期:《編寫高質量代碼改善 Python 程序的 91 個建議》
第二期:《Python最佳實踐指南》
第三期:《黑客與畫家》
延伸閱讀:
陳儒博客: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...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/45022.html
摘要:正好,最近又有幾位不同身份的初學者來咨詢,要我推薦幾本入門書籍,而我們薦書系列已經停更了兩個多月,所以,本期薦書就來推薦一些入門書籍吧。為了準備這期薦書,我專門搜集了本入門書籍,現在全部加入到了一份豆瓣豆列里,方便大家查看。 showImg(https://segmentfault.com/img/remote/1460000019299066?w=4790&h=3193); 本文原創...
閱讀 1813·2021-10-20 13:49
閱讀 1356·2019-08-30 15:52
閱讀 2862·2019-08-29 16:37
閱讀 1032·2019-08-29 10:55
閱讀 3063·2019-08-26 12:14
閱讀 1648·2019-08-23 17:06
閱讀 3234·2019-08-23 16:59
閱讀 2542·2019-08-23 15:42