
Python源码
文章平均质量分 74
一心萝卜
要比昨天的自己强一点点!
展开
-
读Python源码(四)Python列表的操作
简介: 上一篇文章简单了解了一下python列表的表现形式,今天来看简单了解一下对列表的一些操作。下面是在listobject.h头文件中的声明的一些方法,其中PyList_New、PyList_SetItem上一篇中简单看了,PyList_Size方法获取列表长度的也不再多说了,接下来我们简单了解剩余的方法。 1.列表读取元素 PyObject * PyList_GetItem(PyObject *op, Py_ssize_t i) { if (!PyList_Check(op))原创 2022-02-11 16:49:30 · 1150 阅读 · 1 评论 -
读Python源码(三)Python列表的表示
简介: 在家过了个春节快不知道自己是干啥的了:),今天收拾一下心情继续读一下python的源码。这一节打算探究一下Python中列表是如何实现的。 1.Python列表创建 首先来到listobject.c文件找到今天的主角PyListObject,像之前一样将它拆解开来。 typedef struct { PyObject ob_base; // 在整数节已经介绍过,主要包含引用计数和类型 Py_ssize_t ob_size;// 用于指明列表中包含几个元素 PyOb原创 2022-02-10 17:36:30 · 926 阅读 · 0 评论 -
读Python源码(二)Python整数如何进行加减运算
简介: 本节主要目的要基本了解python中整数加减运算的实现,在此之前要先了解python中整数实现方式可以先查看(一)之后再看本节。 注:这里说明一下,下面介绍均已8个比特位举例。那么ob_digit 每一个元素我们认定最多只能占7位。从源码中类推过来,这样是为了防止两数相加溢出问题,比如255+255 这时8位肯定放不下了,只占7位最多127+127=254。 1.加法运算 在了解了整数实现之后,我们在同一文件下(longobject.c)可以发现long_add函数实现了两整数相加的运算,那原创 2022-01-22 14:24:41 · 4857 阅读 · 0 评论 -
读Python源码(一)Python是如何表示整数的
文头白话: 作为一个菜鸟,为了避免误导我就不说Python源码结构了。和那一堆源码文件初次见面就很头疼,我对C语言了解不深,看源码也只是为了更好的了解Python,所以可能会有很多错误或者不足的地方。如果有大神看到了,能帮忙指出,将感激不尽。 1. Python整数的表示 首先要知道的是在python3中整型数字均采用long类型实现的,那么我们就要找到相关文件。在Objects路径下能找到longobject.c文件,查看代码不难发现PyLongObject应该就是整数对应的结构体。 在lon原创 2022-01-16 16:39:52 · 4326 阅读 · 1 评论