python源码深度剖析_Python源码剖析-深度探索动态语言核心技术 PDF 下载
相關截圖:
資料簡介:
作為主流的動態語言,Python不僅簡單易學、移植性好,而且擁有強大豐富的庫的支持。此外,Python強大的可擴展性,讓開發人員既可以非常容易地利用C/C++編寫Python的擴展模塊,還能將Python嵌入到C/C++程序中,為自己的系統添加動態擴展和動態編程的能力。 為了更好地利用Python語言,無論是使用Python語言本身,還是將Python與C/C++交互使用,深刻理解Python的運行原理都是非常重要的。本書以CPython為研究對象,在C代碼一級,深入細致地剖析了Python的實現。書中不僅包括了對大量Python內置對象的剖析,更將大量的篇幅用于對Python虛擬機及Python高級特性的剖析。通過此書,讀者能夠透徹地理解Python中的一般表達式、控制結構、異常機制、類機制、多線程機制、模塊的動態加載機制、內存管理機制等核心技術的運行原理,同時,本書所揭示的動態語言的核心技術對于理解其他動態語言,如Java*、Ruby等也有較大的參考價值。 本書適合于Python程序員、動態語言愛好者、C程序員閱讀
資料目錄:
第0章PYTHON源碼剖析--編譯PYTHON0.1PYTHON總體架構0.2PYTHON源代碼的組織0.3WINDOWS環境下編譯PYTHON0.4UNIX/LINUX環境下編譯PYTHON0.5修改PYTHON源代碼0.6通往PYTHON之路0.7一些注意事項第1部分PYTHON內建對象第1章PYTHON對象初探1.1PYTHON內的對象1.1.1對象機制的基石——PyObject1.1.2定長對象和變長對象1.2類型對象1.2.1對象的創建1.2.2對象的行為1.2.3類型的類型1.3PYTHON對象的多態性1.4引用計數1.5PYTHON對象的分類第2章PYTHON中的整數對象2.1初識PYINTOBJECT對象2.2PYINTOBJECT對象的創建和維護2.2.1對象創建的3種途徑2.2.2小整數對象2.2.3大整數對象2.2.4添加和刪除2.2.5小整數對象池的初始化2.3HACKPYINTOBJECT第3章PYTHON中的字符串對象3.1PYSTRINGOBJECT與PYSTRING_TYPE3.2創建PYSTRINGOBJECT對象3.3字符串對象的INTERN機制3.4字符緩沖池3.5PYSTRINGOBJECT效率相關問題3.6HACKPYSTRINGOBJECT第4章PYTHON中的LIST對象4.1PYLISTOBJECT對象4.2PYLISTOBJECT對象的創建與維護4.2.1創建對象4.2.2設置元素4.2.3插入元素4.2.4刪除元素4.3PYLISTOBJECT對象緩沖池4.4HACKPYLISTOBJECT第5章PYTHON中的DICT對象5.1散列表概述5.2PYDICTOBJECT5.2.1關聯容器的entry5.2.2關聯容器的實現5.3PYDICTOBJECT的創建和維護5.3.1PyDictObject對象創建5.3.2PyDictObject中的元素搜索5.3.3插入與刪除5.3.4操作示例5.4PYDICTOBJECT對象緩沖池5.5HACKPYDICTOBJECT第6章最簡單的PYTHON模擬——SMALLPYTHON6.1SMALLPYTHON6.2對象機制6.3解釋過程6.4交互式環境第2部分PYTHON虛擬機第7章PYTHON的編譯結果--CODE對象與PYC文件7.1PYTHON程序的執行過程7.2PYTHON編譯器的編譯結果--PYCODEOBJECT對象7.2.1PyCodeObject對象與pyc文件7.2.2Python源碼中的PyCodeObject7.2.3pyc文件7.2.4在Python中訪問PyCodeObject對象7.3PYC文件的生成7.3.1創建pyc文件的具體過程7.3.2向pyc文件寫入字符串7.3.3一個PyCodeObject,多個PyCodeObject7.4PYTHON的字節碼7.5解析PYC文件第8章PYTHON虛擬機框架8.1PYTHON虛擬機中的執行環境8.1.1Python源碼中的PyFrameObject8.1.2PyFrameObject中的動態內存空間8.1.3在Python中訪問PyFrameObject對象8.2名字、作用域和名字空間8.2.1Python程序的基礎結構——module8.2.2約束與名字空間8.2.3作用域與名字空間8.3PYTHON虛擬機的運行框架8.4PYTHON運行時環境初探第9章PYTHON虛擬機中的一般表達式9.1簡單內建對象的創建9.2復雜內建對象的創建9.3其他一般表達式9.3.1符號搜索9.3.2數值運算9.3.3信息輸出第10章PYTHON虛擬機中的控制流10.1PYTHON虛擬機中的IF控制流10.1.1研究對象--if_control.py10.1.2比較操作10.1.3指令跳躍10.2PYTHON虛擬機中的FOR循環控制流10.2.1研究對象——for_control.py10.2.2循環控制結構的初始化10.2.3迭代控制10.2.4終止迭代10.3PYTHON虛擬機中的WHILE循環控制結構10.3.1研究對象——while_control.py10.3.2循環終止10.3.3循環的正常運轉10.3.4循環流程改變指令之continue10.3.5循環流程改變指令之break10.4PYTHON虛擬機中的異常控制流10.4.1Python中的異常機制10.4.2Python中的異常控制語義結構第11章PYTHON虛擬機中的函數機制11.1PYFUNCTIONOBJECT對象11.2無參函數調用11.2.1函數對象的創建11.2.2函數調用11.3函數執行時的名字空間11.4函數參數的實現11.4.1參數類別11.4.2位置參數的傳遞11.4.3位置參數的訪問11.4.4位置參數的默認值11.4.5擴展位置參數和擴展鍵參數11.5函數中局部變量的訪問11.6嵌套函數、閉包與DECORATOR11.6.1實現閉包的基石11.6.2閉包的實現11.6.3Decorator第12章PYTHON虛擬機中的類機制12.1PYTHON中的對象模型12.1.1對象間的關系12.1.2和12.2從TYPE對象到CLASS對象12.2.1處理基類和type信息12.2.2處理基類列表12.2.3填充tp_dict12.3用戶自定義CLASS12.3.1創建class對象12.4從CLASS對象到INSTANCE對象12.5訪問INSTANCE對象中的屬性12.5.1instance對象中的__dict__12.5.2再論de*or12.5.3函數變身12.5.4無參函數的調用12.5.5帶參函數的調用12.5.6BoundMethod和UnboundMethod12.6千變萬化的DESCRIPTOR第3部分PYTHON高級話題第13章PYTHON運行環境初始化13.1線程環境初始化13.1.1線程模型回顧13.1.2初始化線程環境13.2系統MODULE初始化13.2.1創建__builtin__module13.2.2創建sysmodule13.2.3創建__main__module13.2.4設置site-specific的module的搜索路徑13.3激活PYTHON虛擬機13.3.1交互式運行方式13.3.2腳本文件運行方式13.3.3啟動虛擬機13.3.4名字空間第14章PYTHON模塊的動態加載機制14.1IMPORT前奏曲14.2PYTHON中IMPORT機制的黑盒探測14.2.1標準import14.2.2嵌套import14.2.3importpackage14.2.4from與import14.2.5符號重命名14.2.6符號的銷毀與重載14.3IMPORT機制的實現14.3.1解析module/package樹狀結構14.3.2加載module/pakcage14.3.3from與import14.4PYTHON中的IMPORT操作14.4.1importmodule14.4.2importpackage14.4.3from&import14.4.4import&as14.4.5reload14.4.6內建module:imp14.5與MODULE有關的名字空間問題第15章PYTHON多線程機制15.1GIL與線程調度15.2初見PYTHONTHREAD15.3PYTHON線程的創建15.3.1建立多線程環境15.3.2創建線程15.4PYTHON線程的調度15.4.1標準調度15.4.2阻塞調度15.5PYTHON子線程的銷毀15.6PYTHON線程的用戶級互斥與同步15.6.1用戶級互斥與同步15.6.2Lock對象15.7高級線程庫——THREADING15.7.1ThreadingModule概述15.7.2Threading的線程同步工具15.7.3Threading中的Thread第16章PYTHON的內存管理機制16.1內存管理架構16.2小塊空間的內存池16.2.1Block16.2.2Pool16.2.3arena16.2.4內存池16.3循環引用的垃圾收集16.3.1引用計數與垃圾收集16.3.2三色標記模型16.4PYTHON中的垃圾收集16.4.1可收集對象鏈表16.4.2分代的垃圾收集16.4.3Python中的標記-清除方法16.4.4垃圾收集全景16.4.5Python中的gc模塊16.4.6總結
總結
以上是生活随笔為你收集整理的python源码深度剖析_Python源码剖析-深度探索动态语言核心技术 PDF 下载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv及相机相关6
- 下一篇: Python(21)_input用户交互