1. 程式人生 > >python3.7-初學篇-21

python3.7-初學篇-21

Python原始碼剖析

《Python原始碼剖析》是2008年06月電子工業出版社出版的圖書,作者是陳儒。
   

 

書    名
Python原始碼剖析——深度探索動態語言核心技術
作    者
陳儒
ISBN
9787121068744
類    別
 圖書 >> 計算機/網路 >> 程式設計 >> 其他
定    價
¥69.80
出版社
電子工業出版社
出版時間
2008-6-1

目錄

  1. 內容簡介
  2. 編輯推薦
  3. 作者簡介
  4. 作品目錄
 

內容簡介

編輯 該書作為主流的動態語言,Python不僅簡單易學、移植性好,而且擁有強大豐富的庫的支援。此外,Python強大的可擴充套件性,讓開發人員既可以非常容易地利用C/C++編寫Python的擴充套件模組,還能將Python嵌入到C/C++程式中,為自己的系統新增動態擴充套件和動態程式設計的能力。  
為了更好地利用Python語言,無論是使用Python語言本身,還是將Python與C/C++互動使用,深刻理解Python的執行原理都是非常重要的。本書以CPython為研究物件,在C程式碼一級,深入細緻地剖析了Python的實現。書中不僅包括了對大量Python內建物件的剖析,更將大量的篇幅用於對Python虛擬機器及Python高階特性的剖析。通過此書,讀者能夠透徹地理解Python中的一般表示式、控制結構、異常機制、類機制、多執行緒機制、模組的動態載入機制、記憶體管理機制等核心技術的執行原理,同時,本書所揭示的動態語言的核心技術對於理解其他動態語言,如Javascript、Ruby等也有較大的參考價值。 本書適合於Python程式設計師、動態語言愛好者、C程式設計師閱讀。  

編輯推薦

本書的主要特點: 一本深入剖析Python具體實現的著作 內容新鮮,採用最新的Python語言版本(25) 大量的圖表形象地展示Python內部的運作機理 在原理介紹的同時,帶領讀者一起動手對Python虛擬機器進行改造 完整覆蓋Python所有的核心議題,深刻揭示Python與C/C++之間如何互動

作者簡介

陳儒,電腦科學與工程專業碩士,問天(北京)資訊科技有限公司技術負責人,致力於資訊檢索方向的研究與開發。

作品目錄

第0章 PYTHON原始碼剖析--編譯PYTHON 0.1 PYTHON總體架構 0.2 PYTHON原始碼的組織 0.3 WINDOWS環境下編譯PYTHON 0.4 UNIX/LINUX環境下編譯PYTHON 0.5 修改PYTHON原始碼 0.6 通往PYTHON之路 0.7 一些注意事項 第1部分 PYTHON內建物件 第1章 PYTHON物件初探 1.1 PYTHON內的物件 1.1.1 物件機制的基石——PyObject 1.1.2 定長物件和變長物件 1.2 型別物件 1.2.1 物件的建立 1.2.2 物件的行為 1.2.3 型別的型別 1.3 PYTHON物件的多型性 1.4 引用計數 1.5 PYTHON物件的分類 第2章 PYTHON中的整數物件 2.1 初識PYINTOBJECT物件 2.2 PYINTOBJECT物件的建立和維護 2.2.1 物件建立的3種途徑 2.2.2 小整數物件 2.2.3 大整數物件 2.2.4 新增和刪除 2.2.5 小整數物件池的初始化 2.3 HACK PYINTOBJECT 第3章 PYTHON中的字串物件 3.1 PYSTRINGOBJECT與PYSTRING_TYPE 3.2 建立PYSTRINGOBJECT物件 3.3 字串物件的INTERN機制 3.4 字元緩衝池 3.5 PYSTRINGOBJECT效率相關問題 3.6 HACK PYSTRINGOBJECT 第4章 PYTHON中的LIST物件 4.1 PYLISTOBJECT物件 4.2 PYLISTOBJECT物件的建立與維護 4.2.1 建立物件 4.2.2 設定元素 4.2.3 插入元素 4.2.4 刪除元素 4.3 PYLISTOBJECT物件緩衝池 4.4 HACK PYLISTOBJECT 第5章 PYTHON中的DICT物件 5.1 散列表概述 5.2 PYDICTOBJECT 5.2.1 關聯容器的entry 5.2.2 關聯容器的實現 5.3 PYDICTOBJECT的建立和維護 5.3.1 PyDictObject物件建立 5.3.2 PyDictObject中的元素搜尋 5.3.3 插入與刪除 5.3.4 操作示例 5.4 PYDICTOBJECT物件緩衝池 5.5 HACK PYDICTOBJECT 第6章 最簡單的PYTHON模擬——SMALL PYTHON 6.1 SMALL PYTHON 6.2 物件機制 6.3 解釋過程 6.4 互動式環境 第2部分 PYTHON虛擬機器 第7章 PYTHON的編譯結果--CODE物件與PYC檔案 7.1 PYTHON程式的執行過程 7.2 PYTHON編譯器的編譯結果--PYCODEOBJECT物件 7.2.1 PyCodeObject物件與pyc檔案 7.2.2 Python原始碼中的PyCodeObject 7.2.3 pyc檔案 7.2.4 在Python中訪問PyCodeObject物件 7.3 PYC檔案的生成 7.3.1 建立pyc檔案的具體過程 7.3.2 向pyc檔案寫入字串 7.3.3 一個PyCodeObject,多個PyCodeObject 7.4 PYTHON的位元組碼 7.5 解析PYC檔案 第8章 PYTHON虛擬機器框架 8.1 PYTHON虛擬機器中的執行環境 8.1.1 Python原始碼中的PyFrameObject 8.1.2 PyFrameObject中的動態記憶體空間 8.1.3 在Python中訪問PyFrameObject物件 8.2 名字、作用域和名字空間 8.2.1 Python程式的基礎結構——module 8.2.2 約束與名字空間 8.2.3 作用域與名字空間 8.3 PYTHON虛擬機器的執行框架 8.4 PYTHON執行時環境初探 第9章 PYTHON虛擬機器中的一般表示式 9.1 簡單內建物件的建立 9.2 複雜內建物件的建立 9.3 其他一般表示式 9.3.1 符號搜尋 9.3.2 數值運算 9.3.3 資訊輸出 第10章 PYTHON虛擬機器中的控制流 10.1 PYTHON虛擬機器中的IF控制流 10.1.1 研究物件--if_control.py 10.1.2 比較操作 10.1.3 指令跳躍 10.2 PYTHON虛擬機器中的FOR迴圈控制流 10.2.1 研究物件——for_control.py 10.2.2 迴圈控制結構的初始化 10.2.3 迭代控制 10.2.4 終止迭代 10.3 PYTHON虛擬機器中的WHILE迴圈控制結構 10.3.1 研究物件——while_control.py 10.3.2 迴圈終止 10.3.3 迴圈的正常運轉 10.3.4 迴圈流程改變指令之continue 10.3.5 迴圈流程改變指令之break 10.4 PYTHON虛擬機器中的異常控制流 10.4.1 Python中的異常機制 10.4.2 Python中的異常控制語義結構 第11章 PYTHON虛擬機器中的函式機制 11.1 PYFUNCTIONOBJECT物件 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 巢狀函式、閉包與DECORATOR 11.6.1 實現閉包的基石 11.6.2 閉包的實現 11.6.3 Decorator 第12章 PYTHON虛擬機器中的類機制 12.1 PYTHON中的物件模型 12.1.1 物件間的關係 12.1.2 和 12.2 從TYPE物件到CLASS物件 12.2.1 處理基類和type資訊 12.2.2 處理基類列表 12.2.3 填充tp_dict 12.3 使用者自定義CLASS 12.3.1 建立class物件 12.4 從CLASS物件到INSTANCE物件 12.5 訪問INSTANCE物件中的屬性 12.5.1 instance物件中的__dict__ 12.5.2 再論descriptor 12.5.3 函式變身 12.5.4 無參函式的呼叫 12.5.5 帶參函式的呼叫 12.5.6 Bound Method和Unbound Method 12.6 千變萬化的DESCRIPTOR 第3部分 PYTHON高階話題 第13章 PYTHON執行環境初始化 13.1 執行緒環境初始化 13.1.1 執行緒模型回顧 13.1.2 初始化執行緒環境 13.2 系統MODULE初始化 13.2.1 建立__builtin__ module 13.2.2 建立sys module 13.2.3 建立__main__ module 13.2.4 設定site-specific的module的搜尋路徑 13.3 啟用PYTHON虛擬機器 13.3.1 互動式執行方式 13.3.2 指令碼檔案執行方式 13.3.3 啟動虛擬機器 13.3.4 名字空間 第14章 PYTHON模組的動態載入機制 14.1 IMPORT前奏曲 14.2 PYTHON中IMPORT機制的黑盒探測 14.2.1 標準import 14.2.2 巢狀import 14.2.3 import package 14.2.4 from與import 14.2.5 符號重新命名 14.2.6 符號的銷燬與過載 14.3 IMPORT機制的實現 14.3.1 解析module/package樹狀結構 14.3.2 載入module/pakcage 14.3.3 from與import 14.4 PYTHON中的IMPORT操作 14.4.1 import module 14.4.2 import package 14.4.3 from & import 14.4.4 import & as 14.4.5 reload 14.4.6 內建module:imp 14.5 與MODULE有關的名字空間問題 第15章 PYTHON多執行緒機制 15.1 GIL與執行緒排程 15.2 初見PYTHON THREAD 15.3 PYTHON執行緒的建立 15.3.1 建立多執行緒環境 15.3.2 建立執行緒 15.4 PYTHON執行緒的排程 15.4.1 標準排程 15.4.2 阻塞排程 15.5 PYTHON子執行緒的銷燬 15.6 PYTHON執行緒的使用者級互斥與同步 15.6.1 使用者級互斥與同步 15.6.2 Lock物件 15.7 高階執行緒庫——THREADING 15.7.1 Threading Module概述 15.7.2 Threading的執行緒同步工具 15.7.3 Threading中的Thread 第16章 PYTHON的記憶體管理機制 16.1 記憶體管理架構 16.2 小塊空間的記憶體池 16.2.1 Block 16.2.2 Pool 16.2.3 arena 16.2.4 記憶體池 16.3 迴圈引用的垃圾收集 16.3.1 引用計數與垃圾收集 16.3.2 三色標記模型 16.4 PYTHON中的垃圾收集 16.4.1 可收集物件連結串列 16.4.2 分代的垃圾收集 16.4.3 Python中的標記-清除方法 16.4.4 垃圾收集全景 16.4.5 Python中的gc模組 16.4.6 總結   原文來源-百度文科