python原始碼剖析 0 1章

2021-07-28 22:31:55 字數 1008 閱讀 7763

python總體架構

python整體架構主要可以分為三部分

1. 模組(內建模組,庫,使用者自定義模組)

2. python執行時環境,包括物件/型別系統(list,dict,使用者自定義物件等),記憶體分配器(建立物件時對記憶體的申請)和執行時狀態資訊(直譯器的狀態,比如正常,異常等)

3. 直譯器(詞法分析[將python源**切分為token]–>語法分析[建立抽象語法樹ast]–>生成指令集合[根據ast生成位元組碼]–>執行位元組碼)

python部分目錄結構
include:c或c++的標頭檔案

lib:python自帶的標準庫

modules:c語言編寫的模組,這些模組對速度要求一般比較嚴格,而一般的模組比如os,就是用python編寫,放在lib下

objects:包含了python內建物件

靜態初始化:c中的結構體在編譯的時候就初始化

堆:乙個完全二叉樹的實現……………..

python中乙個物件一旦被建立,它在記憶體中的大小就是不變的了,這就意味著那些需要容納可變長度資料的物件需要維護乙個指向一塊可變大小記憶體區域的指標

python中,物件機制的核心有兩個,一是引用計數,二是型別資訊

c中是沒有字串的概念的的,所以維護乙個字串物件,其實是維護n個char物件,所以python中字串屬於序列

物件的行為
class

myint

(int):

def__getitem__

(self, key):

return key + str(self)

a = myint(1)

b = myint(2)

print a + b

print a['key']

pytypeobject中定義了大量的函式指標,它們指定物件不同的操作資訊。

python物件的分類(一種思路)

python原始碼剖析 2 6章

python中所有的內建物件,幾乎都會有自己的物件池機制,以避免常用物件頻繁的malloc和free python中的int其實就是c中的long pyintobject物件的建立 python為建立乙個pyintobject提供了三個方法 pyint fromlong,pyint fromstri...

python原始碼剖析 Python原始碼剖析

第頁共 頁python 原始碼剖析 物件機制 1.物件 在python 的世界中,一切都是物件,乙個整數是乙個物件,乙個字串也是 乙個物件,更為奇妙的是,型別也是乙個物件,整數型別是乙個物件,字串類 型也是乙個物件。從 年guido 在那個聖誕節揭開 python 世界的大幕開始,一直到現在,pyt...

原始碼剖析 Hashtable 原始碼剖析

hashtable同樣是基於雜湊表實現的,同樣每個元素都是key value對,其內部也是通過單鏈表解決衝突問題,容量不足 超過了閾值 時,同樣會自動增長。hashtable也是jdk1.0引入的類,是執行緒安全的,能用於多執行緒環境中。hashtable同樣實現了serializable介面,它支...