原文:《深度剖析CPython解釋器》3. Python的引用計數是什么?Python底層是如何管理對象的?

楔子 在上一篇中我們說到了Python中的對象在底層的數據結構,我們知道Python底層通過PyObject和PyTypeObject完成了C 所提供的對象的多態特性。在Python中創建一個對象,會分配內存並進行初始化,然后Python會用一個PyObject 來保存和維護這個對象,當然所有對象都是如此。因為指針是可以相互轉化的,所以變量在保存一個對象的指針時,會將該指針轉成PyObject 之 ...

2020-07-31 17:26 0 1161 推薦指數:

查看詳情

深度剖析CPython解釋器》4. 解密Python中最簡單的對象--浮點數的底層實現

楔子 從現在開始,我們就來分析Python中常見的內置對象、以及對應的實例對象,看看它們在底層是如何實現的。但說實話,我們在前面幾節中介紹對象的時候,已經說了不少了,不過從現在開始要進行更深入的分析。 除了對象本身,還要看對象支持的操作在底層是如何實現的。我們首先以浮點數為例,因為它是最簡單 ...

Sun Aug 02 03:57:00 CST 2020 10 791
深度剖析CPython解釋器》10. Python中的PyCodeObject對象與pyc文件

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

Sat Aug 15 10:31:00 CST 2020 0 642
深度剖析CPython解釋器》1. Python中一切皆對象,這里的對象究竟是什么?解密Python中的對象模型

Python中一切皆對象 關於Python,你肯定聽過這么一句話:"Python中一切皆對象"。沒錯,在Python的世界里,一切都是對象。整型是一個對象、字符串是一個對象、字典是一個對象,甚至int、str、list等等,再加上我們使用class自定義的類,它們也是對象。 像int ...

Tue Jul 28 22:53:00 CST 2020 4 2144
深度剖析CPython解釋器》22. 解密Python中的生成器對象,從字節碼的角度分析生成器的底層實現以及執行邏輯

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

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

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

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