在下這廂有禮了
書名: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);
意思是:深色處表示內存塊,箭頭表示指針。
第一天任務完成