- Python進階編程:編寫更高效、優雅的Python代碼
- 劉宇宙 謝東 劉艷
- 598字
- 2021-04-30 12:39:29
0.1 Python總體架構
Python的整體架構主要分為3個部分,如圖0-1所示。

圖0-1 Python總體架構
圖0-1的左邊是Python提供的大量模塊、庫以及用戶自定義的模塊。比如在執行import os時,這個os就是Python內置的模塊。當然,用戶還可以通過定義模塊來擴展Python系統。
圖0-1的右邊是Python的運行時環境,包括對象/類型系統(Object/Type Structures)、內存分配器(Memory Allocator)和運行時狀態信息(Current State of Python)。運行時狀態維護了解釋器在執行字節碼時不同狀態(比如,正常狀態和異常狀態)之間切換的動作,我們可以將它視為一個巨大而復雜的有窮狀態機。內存分配器則全權負責Python中創建對象、內存的申請工作。實際上,它就是Python運行時與C中malloc的一層接口。而對象/類型系統則包含Python中存在的各種內置對象,比如整數、list和dict,以及各種用戶自定義的類型和對象。
圖0-1的中間部分是Python的核心——解釋器(Interpreter),或者稱為虛擬機。在解釋器中,箭頭的方向指示了Python運行過程中的數據流方向。其中,Scanner對應詞法分析——將文件輸入的Python源碼或從命令行輸入的Python源碼切分為一個個token;Parser對應語法分析——在Scanner的分析結果上進行語法分析,建立抽象語法樹(AST);Compiler根據建立的AST生成指令集合——Python字節碼(Bytecode),就像Java編譯器和C#編譯器所做的那樣;Code Evaluator執行這些字節碼,因此又被稱為虛擬機。
圖0-1中,解釋器與右邊的對象/類型系統、內存分配器之間的箭頭表示使用關系;而與運行時狀態之間的箭頭表示修改關系,即Python在執行的過程中會不斷地修改當前解釋器所處的狀態,在不同的狀態之間切換。
- Python程序設計教程(第2版)
- Learning ROS for Robotics Programming(Second Edition)
- Getting Started with PowerShell
- Python編程與幾何圖形
- Python Web數據分析可視化:基于Django框架的開發實戰
- 移動界面(Web/App)Photoshop UI設計十全大補
- Learning OpenStack Networking(Neutron)(Second Edition)
- Creating Mobile Apps with jQuery Mobile(Second Edition)
- Mastering Python Design Patterns
- 零基礎學Python編程(少兒趣味版)
- Hadoop大數據分析技術
- Java從入門到精通(視頻實戰版)
- Extending Docker
- 一覽眾山小:ASP.NET Web開發修行實錄
- Java核心技術速學版(第3版)