python學習---第一天

在下這廂有禮了

書名: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);



意思是:深色處表示內存塊,箭頭表示指針。


第一天任務完成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章