EVE Light on Life

Python源码学习(5) 函数

PyCodeObject 对象主要包含的内容: co_argcount: Code Block 的位置参数个数 co_nlocals: Code Block 中局部变量的个数(包括位置参数) co_stacksize: 执行Code Block的栈空间大小 co_code: 字节码,以PyStringObject...

Python源码学习(4) Dict对象

Dict对象 PyDictObject对象使用散列表对键进行搜索 关联容器entry typedef struct { Py_ssize_t me_hash; //缓存键的hash值 PyObject *me_key; //键的指针 PyObject *me_value; //值的指针 } PyDictEntry;...

Python源码学习(3) List对象

List对象 定义 typedef struct { PyObject_VAR_HEAD PyObject **ob_item; //ob_item为指向元素列表的指针,list[0]即是ob_item[0] int allocated; //当前为List申请的内存元素个数 }; ob_size记录的是list...

Python源码学习(2) 字符串

字符串对象 定义 不定长对象,在创建的时候才知道数据长度。 typedef struct { PyObject_VAR_HEAD long ob_shash; // 缓存对象hash值,很有用 int ob_sstate; // 标记是否经过intern机制处理 char ob_sval[1]; // 指...

Python源码学习(1) 整数

基本宏定义 #define PyObject_HEAD \ //定长对象固定头部内容 int ob_refcnt \ //引用计数 struct _typeobject *ob_type //指向类型对象 #define PyObject_VAR_HEAD \ //变长对象固定头部内容 ...