/ 專欄
Python 源碼深度剖析
¥ 68.00
掃一掃 手機閱讀
我覺得這68塊錢是我用python三四年以來花在學習上最!踏!馬!值得的錢,sorry爆粗口額
花兩天時間完整過了一遍,是非常難得的對的起題目中“深入”二字的作品,也非常羞愧自己之前一直覺得很熟悉Python了,其實差得太遠了,源碼都沒有讀多少。恰好前段時間剛學習完《數據結構與算法:Python語言實現》、《流暢的Python》和《Python Cookbook第三版》,正要硬著頭皮自己啃Python源碼的時候,發現了這個寶藏,真的一下子解決了很多疑問,酣暢淋漓。接下來還得仔細琢磨一下前文中不懂的細節,以便真正掌握。希望能出版成一本書,那可又多了一本經典的Python書了。
想問下作者,研究源碼有什么用,已經連續看了一周了感覺特別枯燥乏味,講的有些東西源碼中找不到對應的代碼,當然講的這些應該說的要有C語音基礎的前提下才能看明白吧!對于沒有C語言基礎的感覺看了收獲不是很大,因為確實吸收率比較低有時候感覺在浪費時間,您有什么建議嗎 對于研究源碼
源碼研究是能力進階的必由之路,就像開篇中“小菜”經歷的那樣,有些問題不了解底層源碼實現是無法解決的。當然了,如果滿足于需求搬運工,那另當別論。想必這不是您想要的。
這個專欄太棒了!居然沒有早點發現!之前讀源碼的一些疑惑都茅塞頓開!
酒香奈何巷子深……親覺得不錯,不妨幫忙宣傳一下哈
今年由于工作原因,接觸到Python語言以及Python C API,需要通過網卡提供的DMA技術,使得網卡可以直接讀取Python維護的內存中的數據,工作過程中感覺Python這種語言很有意思,很想了解Python內部的實現機制。8月底,微博上偶然機會看到老師的課程,果斷下手;現在9月底,學完了老師的全部課程,接下來我將按照老師的指導,按照老師提供的思路,開始閱讀Python源碼,謝謝老師。
好文 在網上翻來覆去找都是互相復制黏貼的東西 這種文章太難得了
每期都在跟著學,馬上就要講完了,總有一種意猶未盡的感覺。希望能出更多python深層次理論及技術的文章。
太棒了! 對于魔術方法有沒有更為完整的介紹?另外十分期待協程和編程風格的更新
既然親有需要,我先將這個話題加入寫作計劃,敬請關注「小菜學編程」~ Python官網上有個關于數據模型的文檔,里面對魔術方法有相當詳細的介紹,親可以先看看:https://docs.python.org/3/reference/datamodel.html 。 余下內容我正在馬不停蹄創作中,不日即可全部完成~
最近正在寫一個數據表處理的類,每種數據的表頭不一樣,就想著父類若能特性化處理不同表格就太好了,實現之后發現只能通過子類傳遞表格的表頭元組,方法定義在父類,當時內心就覺得無比別扭……而且萬一子類沒有定義列名屬性一定就會死翹翹,當時也想到了直接將父類變成一個元類,子類的所有方法都由元類直接生產,所以元類的init被我定義的超長,最后雖然實現了目的,但是代碼丑的不忍直視……文章里這處理方式,相比之下簡直太簡潔了,直接可以拿去改寫我最初版本的父類
哈哈,對卓越的追求永無止境~ 親還可以看看標準庫abc模塊中,里面可能有一些東西可以直接拿來用,不用再造輪子,例如:abc. abstractmethod 。
一年前閱讀過關于源碼剖析的書, 不過是基于Python2.5的, 很高興遇到了Python3.x的源碼剖析, 正在對著源碼一點一點剖析, 感謝老師出了這個專欄。 但還是遇到了一個問題, 記得您說: "那么,被刪除的存儲單元如何復用呢?Python 壓根就沒想費這個勁,直接使用新的不就好了嗎?"。 不過我隱約記得之前在看那本書的時候, 記得書上畫了一張圖, 描述entry的unused態、active態、dummy態三者的關系。dummy態無法轉為unused態, 但dummy態和active態的entry之間的關系是一個雙向箭頭。 可不可以這樣理解,Python默認是不會管處于dummy態的entry的, 只是做了一個邏輯刪除, 但是內存還在占用這。 如果來了一個新的entry, 并且沒有發生沖突, 那么Python就存在新的位置上。但如果發生了沖突, 沿著"沖突探測鏈"查找的時候, 碰巧發現了一個處于dummy態的entry, 那么就把這個處于dummy態的entry給換成新存儲的entry。 此時entry由dummy態變成了active態, 只不過此時不一定是同一個entry了。可以這樣理解嗎
完全正確。dummy狀態其實也是特殊的unused,之所以不能轉成直接轉成unused是因為需要維護沖突探測鏈。另外,Python 3內建對象與Python 2相比變化很大,特別是dict、str等對象,學習建議以最新版本源碼為準。
正在加載中...
下載慕課網APP
更好的體驗,讓閱讀隨處可得
每邀請一位你將得 ¥
向您推薦
碼上訂閱
如無法下載使用圖片另存為
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
gmdzy2010
我覺得這68塊錢是我用python三四年以來花在學習上最!踏!馬!值得的錢,sorry爆粗口額
gmdzy2010
花兩天時間完整過了一遍,是非常難得的對的起題目中“深入”二字的作品,也非常羞愧自己之前一直覺得很熟悉Python了,其實差得太遠了,源碼都沒有讀多少。恰好前段時間剛學習完《數據結構與算法:Python語言實現》、《流暢的Python》和《Python Cookbook第三版》,正要硬著頭皮自己啃Python源碼的時候,發現了這個寶藏,真的一下子解決了很多疑問,酣暢淋漓。接下來還得仔細琢磨一下前文中不懂的細節,以便真正掌握。希望能出版成一本書,那可又多了一本經典的Python書了。
Onlined
想問下作者,研究源碼有什么用,已經連續看了一周了感覺特別枯燥乏味,講的有些東西源碼中找不到對應的代碼,當然講的這些應該說的要有C語音基礎的前提下才能看明白吧!對于沒有C語言基礎的感覺看了收獲不是很大,因為確實吸收率比較低有時候感覺在浪費時間,您有什么建議嗎 對于研究源碼
講師回答 / fasionchan
源碼研究是能力進階的必由之路,就像開篇中“小菜”經歷的那樣,有些問題不了解底層源碼實現是無法解決的。當然了,如果滿足于需求搬運工,那另當別論。想必這不是您想要的。
weixin_慕雪1290746
這個專欄太棒了!居然沒有早點發現!之前讀源碼的一些疑惑都茅塞頓開!
講師回答 / fasionchan
酒香奈何巷子深……親覺得不錯,不妨幫忙宣傳一下哈
紀老猴子_2020
今年由于工作原因,接觸到Python語言以及Python C API,需要通過網卡提供的DMA技術,使得網卡可以直接讀取Python維護的內存中的數據,工作過程中感覺Python這種語言很有意思,很想了解Python內部的實現機制。8月底,微博上偶然機會看到老師的課程,果斷下手;現在9月底,學完了老師的全部課程,接下來我將按照老師的指導,按照老師提供的思路,開始閱讀Python源碼,謝謝老師。
慕粉7273994
好文 在網上翻來覆去找都是互相復制黏貼的東西 這種文章太難得了
皮蛋它兄弟
每期都在跟著學,馬上就要講完了,總有一種意猶未盡的感覺。希望能出更多python深層次理論及技術的文章。
weixin_慕UI0052680
太棒了! 對于魔術方法有沒有更為完整的介紹?另外十分期待協程和編程風格的更新
講師回答 / fasionchan
既然親有需要,我先將這個話題加入寫作計劃,敬請關注「小菜學編程」~ Python官網上有個關于數據模型的文檔,里面對魔術方法有相當詳細的介紹,親可以先看看:https://docs.python.org/3/reference/datamodel.html 。 余下內容我正在馬不停蹄創作中,不日即可全部完成~
weixin_慕UI0052680
最近正在寫一個數據表處理的類,每種數據的表頭不一樣,就想著父類若能特性化處理不同表格就太好了,實現之后發現只能通過子類傳遞表格的表頭元組,方法定義在父類,當時內心就覺得無比別扭……而且萬一子類沒有定義列名屬性一定就會死翹翹,當時也想到了直接將父類變成一個元類,子類的所有方法都由元類直接生產,所以元類的init被我定義的超長,最后雖然實現了目的,但是代碼丑的不忍直視……文章里這處理方式,相比之下簡直太簡潔了,直接可以拿去改寫我最初版本的父類
講師回答 / fasionchan
哈哈,對卓越的追求永無止境~ 親還可以看看標準庫abc模塊中,里面可能有一些東西可以直接拿來用,不用再造輪子,例如:abc. abstractmethod 。
fgdgdfgfdgfd
一年前閱讀過關于源碼剖析的書, 不過是基于Python2.5的, 很高興遇到了Python3.x的源碼剖析, 正在對著源碼一點一點剖析, 感謝老師出了這個專欄。 但還是遇到了一個問題, 記得您說: "那么,被刪除的存儲單元如何復用呢?Python 壓根就沒想費這個勁,直接使用新的不就好了嗎?"。 不過我隱約記得之前在看那本書的時候, 記得書上畫了一張圖, 描述entry的unused態、active態、dummy態三者的關系。dummy態無法轉為unused態, 但dummy態和active態的entry之間的關系是一個雙向箭頭。 可不可以這樣理解,Python默認是不會管處于dummy態的entry的, 只是做了一個邏輯刪除, 但是內存還在占用這。 如果來了一個新的entry, 并且沒有發生沖突, 那么Python就存在新的位置上。但如果發生了沖突, 沿著"沖突探測鏈"查找的時候, 碰巧發現了一個處于dummy態的entry, 那么就把這個處于dummy態的entry給換成新存儲的entry。 此時entry由dummy態變成了active態, 只不過此時不一定是同一個entry了。可以這樣理解嗎
講師回答 / fasionchan
完全正確。dummy狀態其實也是特殊的unused,之所以不能轉成直接轉成unused是因為需要維護沖突探測鏈。另外,Python 3內建對象與Python 2相比變化很大,特別是dict、str等對象,學習建議以最新版本源碼為準。