python int的源码分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,这个是整数对象的文档信息

以上是关于python int的源码分析的主要内容,如果未能解决你的问题,请参考以下文章

Java对二维数组进行排序及源码分析

基于Python的datetime模块和time模块源码阅读分析

Python源码分析

第1节 Scala基础语法:scala中的方法源码分析

Linux epoll 源码分析 2

python logging模块源码分析