python学习---第一天

来源:互联网 发布:用java编写验证码 编辑:程序博客网 时间:2024/06/03 11:49

在下这厢有礼了

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



意思是:深色处表示内存块,箭头表示指针。


第一天任务完成

原创粉丝点击