原文:《python解釋器源碼剖析》第15章--python模塊的動態加載機制

. 序 在之前的章節中,我們考察的東西都是局限在一個模塊 在python中就是module 內。然而現實中,程序不可能只有一個模塊,更多情況下一個程序會有多個模塊,而模塊之間存在着引用和交互,這些引用和交互也是程序的一個重要的組成部分。本章剖析的就是在python中,一個模塊是如何加載 並引用另一個模塊的功能的。對於一個模塊,肯定要先從硬盤加載到內存。 . import前奏曲 我們以一個簡單的i ...

2020-01-06 18:28 0 694 推薦指數:

查看詳情

python解釋器源碼剖析》第13--python虛擬機中的類機制

13.0 序 這一我們就來看看python中類是怎么實現的,我們知道C不是一個面向對象語言,而python卻是一個面向對象的語言,那么在python的底層,是如何使用C來支持python實現面向對象的功能呢?帶着這些疑問,我們下面開始剖析python中類的實現機制。另外,在python2中 ...

Mon Dec 23 22:35:00 CST 2019 4 592
python解釋器源碼剖析》第0--python的架構與編譯python

本系列是以陳儒先生的《python源碼剖析》為學習素材,所記錄的學習內容。不同的是陳儒先生的《python源碼剖析》所剖析的是python2.5,本系列對應的是python3.7,所以某些地方會和原著有出入,另外我在介紹的過程中會穿插大量的python代碼,不僅僅是介紹如何實現的,還會 ...

Thu Sep 12 22:21:00 CST 2019 0 583
python解釋器源碼剖析》第17--python的內存管理與垃圾回收

17.0 序 內存管理,對於python這樣的動態語言是至關重要的一部分,它在很大程度上決定了python的執行效率,因為在python的運行中會創建和銷毀大量的對象,這些都設計內存的管理。同理python還提供了了內存的垃圾回收(GC,garbage collection),將開發者從繁瑣 ...

Fri Jan 17 01:31:00 CST 2020 3 707
《深度剖析CPython解釋器15. Python函數機制的深度解析(第二部分): 函數在底層是如何被調用的

楔子 在上一篇博客中,我們說了Python函數的底層實現,並且還演示了如何自定義一個函數,雖然這在工作中沒有太大意義,但是可以讓我們深刻理解函數的行為。此外我們還介紹了如何獲取函數的參數,而這一次我們就來看看函數如何調用的。 函數的調用 我們以一個非常簡單的函數為例,看看它的字節碼 ...

Sat Aug 29 07:07:00 CST 2020 4 558
《深度剖析CPython解釋器》28. Python內存管理與垃圾回收(第二部分):源碼解密Python中的垃圾回收機制

楔子 現在絕大部分的語言都實現了垃圾回收機制,這其中也包括Python,而不同的語言采用的垃圾回收算法也各不相同。那么,常見的垃圾回收算法都有哪些呢? 引用計數法(reference count): 記錄對象的被引用次數, 引用計數降為0時回收 標記-清除法(mark-sweep ...

Sun Sep 20 07:55:00 CST 2020 6 947
《深度剖析CPython解釋器》13. 剖析Python的流程控制語句(if、for、while),以及異常捕獲機制

楔子 在上一中,我們介紹了Python虛擬機中常見的字節碼指令。但我們的流程都是從上往下順序執行的,在執行的過程中沒有任何變化,但是顯然這是不夠的,因為怎么能沒有流程控制呢。下面我們來看看Python所提供的流程控制手段,其中也包括異常檢測機制Python虛擬機中的if控制流 ...

Fri Aug 21 09:26:00 CST 2020 0 456
《深度剖析CPython解釋器》24. Python運行時環境的初始化、源碼分析Python解釋器在啟動時都做了哪些事情?

楔子 我們之前分析了Python的核心--字節碼、以及虛擬機的剖析工作,但這僅僅只是一部分,而其余的部分則被遮在了幕后。記得我們在分析虛擬機的時候,曾這么說過: 當Python啟動后,首先會進行 "運行時環境" 的初始化,而關於 "運行時環境" 的初始化是一個非常復雜的過程 ...

Thu Sep 10 05:39:00 CST 2020 5 979
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM