原文:《深度剖析CPython解釋器》12. 剖析字節碼指令,從不一樣的角度觀測Python源代碼的執行過程

楔子 上一章中,我們通過 PyEval EvalFrameDefault看到了Python虛擬機的整體框架,那么這一章我們將深入到 PyEval EvalFrameDefault的各個細節當中,深入剖析Python的虛擬機,在本章中我們將剖析Python虛擬機是如何完成對一般表達式的執行的。這里的一般表達式包括最基本的對象創建語句 打印語句等等。至於if while等表達式,我們將其歸類於控制流語 ...

2020-08-18 17:12 0 518 推薦指數:

查看詳情

深度剖析CPython解釋器》22. 解密Python中的生成器對象,從字節碼角度分析生成器的底層實現以及執行邏輯

楔子 下面我們來聊一聊Python中的生成器,它是我們理解后面協程的基礎,生成器的話,估計大部分人在寫程序的時候都想不到用。但是一旦用好了,確實能給程序帶來性能上的提升,那么我們就來看一看吧。 生成器 基本用法 我們知道,一個函數如果它的內部出現了yield關鍵字,那么它就不再是普通的函數 ...

Sun Sep 06 08:55:00 CST 2020 4 301
深度剖析CPython解釋器》6. 解密Python中bytes對象的底層實現,以及相關操作

楔子 不少編程語言中的"字符串"都是使用字符數組(或者稱字符序列)來表示,比如C語言和go語言就是這樣。 一個字節最多能表示256個字符,所以對於英文來說足夠了,因此一個英文字符占一個字節即可,然而對於那些非英文字符便力不從心了。因此為了表示這些非英文編碼,於是多字節編碼應運而生 ...

Thu Aug 06 06:40:00 CST 2020 7 892
深度剖析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