原文:《深度剖析CPython解释器》2. 解密PyObject、PyVarObject、PyTypeObject在Python对象体系中所代表的含义,用CPython来总结Python中type和object之间的关系

楔子 我们在上一篇中说到了,面向对象理论中 类 和 对象 这两个概念在Python内部都是通过 对象 实现的。 类 是一种对象,称为 类型对象 , 类 实例化得到的也是 对象 ,称为 实例对象 。 并且根据对象的不同特点还可以进一步分类: 可变对象:对象创建之后可以本地修改 不可变对象:对象创建之后不可以本地修改 定长对象:对象所占用的内存大小固定 不定长对象:对象所占用的内存大小不固定 但是 对 ...

2020-07-29 18:12 1 1539 推荐指数:

查看详情

深度剖析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解释器》4. 解密Python中最简单的对象--浮点数的底层实现

楔子 从现在开始,我们就来分析Python中常见的内置对象、以及对应的实例对象,看看它们在底层是如何实现的。但说实话,我们在前面几节中介绍对象的时候,已经说了不少了,不过从现在开始要进行更深入的分析。 除了对象本身,还要看对象支持的操作在底层是如何实现的。我们首先以浮点数为例,因为它是最简单 ...

Sun Aug 02 03:57:00 CST 2020 10 791
深度剖析CPython解释器》7. 解密Python字符串的底层实现,以及相关操作

楔子 这一次我们分析一下Python的字符串,首先Python的字符串是一个变长对象,因为不同长度的字符串所占的内存空间是不一样的;但同时字符串又是一个不可变对象,因为一旦创建就不可以再修改了。 而Python的字符串是通过unicode来表示的,因此在底层对应的结构体 ...

Sat Aug 08 07:44:00 CST 2020 13 769
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM