在下这厢有礼了
书名:Python源码剖析 作者:陈儒
本书试用于Python程序员,动态语言爱好者,C程序员
Python是通过C语言完成的,因此对C程序员有很大帮助(作者说的,俺没说),线程库介绍;
第0章 学习总结
python 整体架构可以分为三个主要部分,File Groups,Python core,Runtime Environment
File Groups:core Modules; Library; user-defined Module;
Python core:INTERPRETER (解释器)(Scanner-Parser-Compiler-Code Evauator)
Runtime Environment:Object/Type structures(对象/类型系统);Memory Allocator(内存分配器);Current State of Python(运行时状态信息);
要求:
获得Python源码:官网http://www.python.org
源码介绍
Python源码剖析的三个部分:
1.Python内建对象,包括整数,字符串,list and dict。细致分析对象在C一级是如何被构建起来
2.Python虚拟机,虚拟机上各种表达式,控制流,异常机制,函数机制及类机制
3.Python高级话题,运行环境的初始化,动态加载机制,多线程机制和内存管理机制
开始
PyString_FromString()in stringobject.c
op=(PyStringObject *)PyObject_MALLOC(sizeof(PyStringObject)*Size);
等效于:
PyStringObject* op=(PyString*)malloc(sizeof(PyStringObject)+size);
C语言分配字符串内存大小
PyList_New() in listobject.c
op=PyObject_GC_New(PyListObject,&PyList_Type);
等效于:
PyListObject* op=new PyList_Type();
C++分配内存大小
op->ob_item = (PyObject **)PyMem_MALLOC(nbytes);
等效于:
op->ob_item = (PyObject **)malloc(nByte);
意思是:深色处表示内存块,箭头表示指针。
第一天任务完成