python int的源码分析

在intobject.h中找到整数的定义

Python的整数对象的数据实际保存在ob_ival中,是c中的long类型。PyObject_HEAD就应该是整数对象的描述了。从源码的描述中知道PyObject_HEAD定义了整数对象的初始化信息

 

 

其中typedef struct _typeobject{}PyTypeObject,PyTypeObject可以被认为对象的最通用,最原始的类,被其他整数,字符串等对象继承使用。

 

PyAPI_DATA(PyTypeObject)  PyInt_Type;,可以猜测,PyAPI_DATA就是整数对象类型继承PyTypeObject的包装声明。在intobject.c中可以找到对PyInt_Type的赋值

可以看到PyInt_Type的父类初始化就是通过PyType_Type来完成的。

 

int_as_number是整数对象的操作集合,这个就不再细看了。值得注意的是int_doc,这个是整数对象的文档信息

posted @ 2017-03-04 19:38  xwqaz  阅读(600)  评论(0编辑  收藏  举报