原文:《深度剖析CPython解釋器》34. 侵入 Python 虛擬機,動態修改底層數據結構和運行時

楔子 之前分析了那么久的虛擬機,多少會有點無聊,那么本次我們來介紹一個好玩的,看看如何修改 Python 解釋器的底層數據結構和運行時。了解虛擬機除了可以讓我們寫出更好的代碼之外,還可以對 Python 進行改造。舉個栗子: 是不是很有趣呢 通過 Python 內置的 ctypes 模塊即可做到,而具體實現方式我們一會兒說。所以本次我們的工具就是 ctypes 模塊 Python 版本為 . ,需 ...

2021-10-31 13:50 0 1298 推薦指數:

查看詳情

深度剖析CPython解釋器》14. Python函數機制的深度解析(第一部分): 函數在底層數據結構、以及它的創建方式

楔子 函數是任何一門編程語言都具備的基本元素,它可以將多個動作組合起來,一個函數代表了一系列的動作。當然我們之前說函數也是一個變量,該變量指向一個函數。而且在調用函數時會干什么來着,沒錯,要在運行時棧中創建棧幀,用於函數的執行。 那么下面就來看看函數在C中是如何實現的,生得一副什么模樣 ...

Sat Aug 22 09:51:00 CST 2020 1 523
深度剖析CPython解釋器》24. Python運行時環境的初始化、源碼分析Python解釋器在啟動時都做了哪些事情?

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

Thu Sep 10 05:39:00 CST 2020 5 979
深度剖析CPython解釋器》7. 解密Python中字符串的底層實現,以及相關操作

楔子 這一次我們分析一下Python中的字符串,首先Python中的字符串是一個變長對象,因為不同長度的字符串所占的內存空間是不一樣的;但同時字符串又是一個不可變對象,因為一旦創建就不可以再修改了。 而Python中的字符串是通過unicode來表示的,因此在底層對應的結構體 ...

Sat Aug 08 07:44:00 CST 2020 13 769
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM