python源码深度剖析_Python 源码深度剖析
qq_六月的古明地覺_0
一年前閱讀過關于源碼剖析的書, 不過是基于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等對象,學習建議以最新版本源碼為準。
總結
以上是生活随笔為你收集整理的python源码深度剖析_Python 源码深度剖析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: select * from ( uni
- 下一篇: python百度文库源码_Python源