原文:《深度剖析CPython解釋器》24. Python運行時環境的初始化、源碼分析Python解釋器在啟動時都做了哪些事情?

楔子 我們之前分析了Python的核心 字節碼 以及虛擬機的剖析工作,但這僅僅只是一部分,而其余的部分則被遮在了幕后。記得我們在分析虛擬機的時候,曾這么說過: 當Python啟動后,首先會進行 運行時環境 的初始化,而關於 運行時環境 的初始化是一個非常復雜的過程。並且 運行時環境 和 執行環境 是不同的, 運行時環境 是一個全局的概念,而 執行環境 是一個棧幀。關於 運行時環境 我們后面將用單獨 ...

2020-09-09 21:39 5 979 推薦指數:

查看詳情

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

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

Sun Oct 31 21:50:00 CST 2021 0 1298
深度剖析CPython解釋器》8. 解密Python中列表的底層實現,通過源碼分析列表支持的相關操作

楔子 Python中的列表可以說使用的非常廣泛了,在初學列表的時候,老師會告訴你列表就是一個大倉庫,什么都可以存放。不過在最開始的幾個章節中,我們花了很大的筆墨介紹了Python中的對象,並明白了Python中變量的本質,我們知道列表中存放的元素其實都是泛型指針PyObject *,所以到現在 ...

Sun Aug 09 12:03:00 CST 2020 8 843
深度剖析CPython解釋器》31. Python 和 C / C++ 聯合編程

楔子 Python 和 C / C++ 混合編程已經屢見不鮮了,那為什么要將這兩種語言結合起來呢?或者說,這兩種語言混合起來能給為我們帶來什么好處呢?首先,Python 和 C / C++ 聯合,無非兩種情況。 1. C / C++ 為主導的項目中引入 Python; 2. ...

Fri Feb 12 09:56:00 CST 2021 6 826
深度剖析CPython解釋器》10. Python中的PyCodeObject對象與pyc文件

楔子 當我們想要執行一個py文件的時候,只需要python xxx.py即可,但是你有沒有想過這背后的流程是怎么樣的呢?從這里開始我們就開始進入到Python虛擬機的環節了,之前都是在介紹Python中的一些內置對象,不過虛擬機的執行流程、以及背后的原理卻更是值得我們關注的。 這里我們先來 ...

Sat Aug 15 10:31:00 CST 2020 0 642
深度剖析CPython解釋器》32. Python 和 Go 聯合編程

楔子 Python 可以和 C 無縫結合,通過 C 來為 Python 編寫擴展可以極大地提升 Python 的效率,但是使用 C 來編程顯然不是很方便,於是本人想到了 Go。對比 C 和 Go 會發現兩者非常相似,沒錯,Go 語言具有強烈的 C 語言背景,其設計者以及語言的設計目標都和 C ...

Wed May 19 01:39:00 CST 2021 1 2107
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM