PYTHON 源码阅读 - 对象

497 查看

结束休息期, 开始准备面试事宜了, 发现要准备的东西好多(╯‵□′)╯︵┻━┻, 顺手整理下Python源码阅读笔记(力争在写完前找到工作)

参考内容: Python源码 + >

源代码+说明+图解的方式, 尽量说明白吧, 有一份注释在github上

内容:

PS: 画图的话google doc很好用

好的, 第一篇开始


一切皆为对象

对象, 在C语言是如何实现的?

Python中对象分为两类: 定长(int等), 非定长(list/dict等)

所有对象都有一些相同的东西, 源码中定义为PyObjectPyVarObject, 两个定义都有一个共同的头部定义PyObject_HEAD(其实PyVarObject有自己的头部定义PyObject_VAR_HEAD, 但其实际上用的也是PyObject_HEAD).

源码位置: Include/object.h

PyObject_HEAD

Python 内部, 每个对象拥有相同的头部.

定义

说明

PyObject

定义

说明

结构

PyObject

PyVarObject

定义

说明

结构

PyVarObject

代码关系

PyObjectCode

几个方法

跟对象相关的方法

跟引用计数相关的方法

其他

几个参数涉及


changelog: