原文:《深度剖析CPython解釋器》13. 剖析Python的流程控制語句(if、for、while),以及異常捕獲機制

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

2020-08-21 01:26 0 456 推薦指數:

查看詳情

深度剖析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
深度剖析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解釋器》19. Python機制深度解析(第三部分): 自定義類的底層實現、以及metaclass

楔子 Python除了給我提供了很多的類之外,還支持我們定義屬於自己的類,那么Python底層是如何做的呢?我們下面就來看看。 自定義class 老規矩,如果想知道底層是怎么做的,那么就必須要通過觀察字節碼來實現。 通過之前對函數機制的分析中,我們知道對於一個包含函數定義的Python ...

Tue Sep 01 08:58:00 CST 2020 0 469
深度剖析CPython解釋器》15. Python函數機制深度解析(第二部分): 函數在底層是如何被調用的

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

Sat Aug 29 07:07:00 CST 2020 4 558
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM