Python架构(二)
python運行時環境:
?
?
?
python的運行時最初在python解釋器啟動的時候創建。
創建過程:(1)創建主進程對象(PyInterpreterState)
???????????????(2)創建主線程對象(PyThreadState),同時放入主進程對象的線程對象鏈表(tstate_head)中
?????????????? (3)創建系統模塊:__builtin__模塊對象、sys模塊對象、exceptions模塊對象和__main__模塊對象,同時放入主進程對象的模塊對象集modules。此外,還會創建模塊對象的備份Extensions,備份之前創建的對象。(注:模塊對象在python中即表示一個字典對象PyDictObject,其中包含若干"名字-對象指針"映射對pair)
??????????????
?
一旦運行時環境創建好了以后就進入解釋執行階段。
解釋執行過程:(1)編譯Python腳本,并創建代碼對象(PyCodeObject),代碼對象中含有Python字節碼指令。
???????????????????? (2)創建一個幀對象(PyFrameObject),將其放入主線程對象的幀對象鏈表,設置代碼對象,設置全局名字空間(Global namespace)為__main__模塊對象。
???????????????????? (3)開始執行幀對象中代碼對象的字節碼指令。
?????????????????????(4)此后的執行過程中,一旦發現有函數調用,就會創建一個幀對象,加入當前線程對象的幀對象鏈表,初始化,最后執行其中的字節碼指令
?
?
?
?
?
參考:《Python源碼剖析-深度探索動態語言核心技術》
?
?
?
?
總結
以上是生活随笔為你收集整理的Python架构(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python架构(一)
- 下一篇: 烧号