文头白话:
作为一个菜鸟,为了避免误导我就不说Python源码结构了。和那一堆源码文件初次见面就很头疼,我对C语言了解不深,看源码也只是为了更好的了解Python,所以可能会有很多错误或者不足的地方。如果有大神看到了,能帮忙指出,将感激不尽。
1. Python整数的表示
首先要知道的是在python3中整型数字均采用long类型实现的,那么我们就要找到相关文件。在Objects路径下能找到longobject.c文件,查看代码不难发现PyLongObject应该就是整数对应的结构体。
在longobject.h这个头文件中找到了它 ,然后将它的内容拿出来
struct _longobject {
PyObject_VAR_HEAD
digit ob_digit[1];
};
PyObject_VAR_HEAD还是看不懂的,那就继续看看它是个什么东西。
这些找到之后,就将PyObject_VAR_HEAD拆开了
struct _longobject {
PyObject ob_base;
Py_ssize_t ob_size; /* Number of items in variab