在listobject.h中,有如下定义和注释:
typedefstruct{
PyObject_VAR_HEAD
/* Vector of pointers to list elements. list[0] is ob_item[0], etc. */
PyObject**ob_item;
/* ob_item contains space for 'allocated' elements. The number
* currently in use is ob_size.
* Invariants:
* 0 <= ob_size <= allocated
* len(list) == ob_size
* ob_item == NULL implies ob_size == allocated == 0
* list.sort() temporarily sets allocated to -1 to detect mutations.
*
* Items must normally not be NULL, except during construction when
* the list is not yet visible outside the function that builds it.
*/
Py_ssize_tallocated;
}PyListObject;
PyListObject是个可变对象,可以在运行时改变负责维护的内存,包括自身的长度和所包含元素的内容。
其中,成员ob_item指向存放元素的内存空间,allocated表示一共分配得到的可以存放元素的数目,
而头部宏中包含的ob_size表示包含的有效元素的数目,因为PyListObject并不是要插入一个元素才申请一次空间的,而是一次性先申请一定数目的空间,即allocated。
需要考察第一次创建过程,以及当表满了后,新增元素的处理。
JasonLee 2011.08.08 22:32 牙疼,犯困,早点休息
Python中使用PyList_New来创建新的PyListObject对象,在创建过程中会使用缓冲池的对象或者新建。
缓冲池的对象由不再使用的PyListObject构成,可以理解为“废物利用”或者“环保重用”。
使用PyList_SetItem来设置PyListObject中某一元素的值。
使用PyList_Insert进行插入,实际上调用的ins1函数,过程会调用到list_resize函数调整大小,类似的还有listappend和listremove函数等。
插入、删除等操作会涉及内存移动。
JasonLee 2011.08.10 23:54 今夜打篮球,早点休息
分享到:
相关推荐
Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf ...
python笔记python笔记python笔记python笔记python笔记python笔记python笔记python笔记python笔记
1、Python环境搭建 1.1 Python简介 1.2 Python语言的发展历程 1.3 Python语言的主要特点 1.4 Python应用场景 1.5 Python环境搭建 1.6 第一个Python程序 1.7 集成开发工具 2、Python语法基础 2.1 Python中的...
Python笔记PythonPython笔记笔Python笔Python笔记记记Python笔记
最新Python学习笔记,Day 3,总结性学习笔记,适合初学者归纳总结。
Python基础入门教程,适合Python初学者,文档内容包括, 目录 前言 i 第一章 程序 1 1.1 程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 什么是调试 . . . . . . . . . . . . . . . ....
python 学习笔记——线性回归预测模型.pdf python 学习笔记——线性回归预测模型.pdf python 学习笔记——线性回归预测模型.pdf python 学习笔记——线性回归预测模型.pdf python 学习笔记——线性回归预测模型.pdf ...
python刚刚开始学习还没入门的,可以试一下这些例题,掌握快速
Python学习笔记--皮大庆,非常适合零基础入门。对应英文版本《How to think like a computer scientist》
Python学习笔记
Python学习笔记.pdf
Python 学习笔记
马哥python课堂笔记_马哥教育PYTHON相关基础笔记 1 python 推荐书籍 《python Cookbook》 《learn python the hard way》 《google's python class》 《简明python教程》 2 冯诺依曼体系架构 输⼊设备-> 存储器(运算...
Python学习笔记 附赠可爱的Python 同时增加了UltraEdit的高亮显示Shell 及Python的文件
python的毕业设计云笔记平台分析与设计。基于python的云笔记平台分析与设计python的毕业设计云笔记平台分析与设计。基于python的云笔记平台分析与设计python的毕业设计云笔记平台分析与设计。基于python的云笔记平台...
王纯业的Python学习笔记非常适合初学者入门的Python教程
Python学习笔记,最基本的python相关基础知识点学习笔记,不包含框架。适合0基础入门,快速入门,快速过一遍Python涉及到的语法和其他基本问题,详细的记录在案。
疯狂Python讲义笔记 Python基础入门到进阶知识手册 对照原文的笔记 由浅入深 循序渐进的笔记
python学习笔记python学习笔记python学习笔记python学习笔记python学习笔记