众所周知,直接访问Python官网非常慢,而且可能有时候根本无法访问。所以,源码直接放在这里便于下载。Python 2.7.7的源码,学习Python的参考素材。tar.xz压缩格式。使用下面这个命令解压缩:
tar -xvf ./Python-2.7.7.tar.xz
------------------------------------------分割线------------------------------------------
在 2015年LinuxIDC.com\8月\Python2.7.7源码分析
------------------------------------------分割线------------------------------------------?
Python 中的对象有定长对象PyObject (如 int 对象),变长对象PyVarObject(如 list 对象), Python 的对象都属于这两种之一。对象中包含引用计数和类型信息,管理和创建对象需要用到。还包含属性值的存储空间。
PyObject 对象在内存中的结构类似下面代码:
在PyObject 的类型对象中(struct _typeobject *ob_type;),有关于类型的名称,内存占用大小,构造,析构函数指针等属性。这些是创建对象所需要的信息。
?
类型对象在脚本被执行的时候创建,并且添加到符号表。在需要创建类对象的实例时,从符号表中获取类型对象,并创建它的实例(在 symtable.c 文件中有相关符号表的代码)。 C api 创建类对象有一套接口:
在 python 中创建对象时,创建过程如下例描述: