随笔分类 -  Python 源码剖析笔记

对python源码的学习笔记
摘要:从源码中可以看到,PyListObject中存储数据用的是PyObject **ob_item, 是当作Vector类似的方法。 Items must normally not be NULL,这句是说list中的元素从list中删除,并不会立即free, 而是放到list的缓存池中。这个和整数,字 阅读全文
posted @ 2017-03-10 20:51 xwqaz 阅读(1460) 评论(0) 推荐(0)
摘要:上一篇的整数对象是定长数据,即C中的long型整数。 但是python中还大量存在着不定长的数据类型。如字符串对象 和整数对象一样,字符串对象的组成如下: PyStringObject定义如下: Ob_size就是实际使用的内存大小,在注释中:ob_sval contains space for ' 阅读全文
posted @ 2017-03-10 20:48 xwqaz 阅读(657) 评论(0) 推荐(0)
摘要:整数对象的创建有以下几种,并非书中所述3种 从源码中看到最终都是调用PyInt_FromLong,书中写的PyInt_FromFloat,需要注意这点。 所以重点阅读函数PyInt_FromLong: 方便用户直接取用,小整数对象池是python运行是就必须存在的。按照这个思路,那么小整数对象池的初 阅读全文
posted @ 2017-03-04 21:21 xwqaz 阅读(1017) 评论(0) 推荐(0)
摘要:在intobject.h中找到整数的定义 Python的整数对象的数据实际保存在ob_ival中,是c中的long类型。PyObject_HEAD就应该是整数对象的描述了。从源码的描述中知道PyObject_HEAD定义了整数对象的初始化信息 其中typedef struct _typeobject 阅读全文
posted @ 2017-03-04 19:38 xwqaz 阅读(618) 评论(0) 推荐(0)
摘要:最近在看python源码剖析这本。 所以把学习的笔记记录下来 我使用的是win7系统,所以安装了cywin进行linux环境的模拟。因为书上使用的是python2.5,所以我直接下载python2.5的源码进行学习。 6.可以在cygwin的安装目录下找到python2.5,C:\cygwin\us 阅读全文
posted @ 2017-03-04 19:35 xwqaz 阅读(191) 评论(0) 推荐(0)