作品简介

作为主流的动态语言,Python不仅简单易学、移植性好,而且拥有强大丰富的库的支持。此外,Python强大的可扩展性,让开发人员既可以非常容易地利用C/C++编写Python的扩展模块,还能将Python嵌入到C/C++程序中,为自己的系统添加动态扩展和动态编程的能力。

为了更好地利用Python语言,无论是使用Python语言本身,还是将Python与C/C++交互使用,深刻理解Python的运行原理都是非常重要的。本书以CPython为研究对象,在C代码一级,深入细致地剖析了Python的实现。书中不仅包括了对大量Python内置对象的剖析,更将大量的篇幅用于对Python虚拟机及Python高级特性的剖析。通过此书,读者能够透彻地理解Python中的一般表达式、控制结构、异常机制、类机制、多线程机制、模块的动态加载机制、内存管理机制等核心技术的运行原理,同时,本书所揭示的动态语言的核心技术对于理解其他动态语言,如 Javascript、Ruby等也有较大的参考价值。

本书适合于Python程序员、动态语言爱好者、C程序员阅读。

陈儒,计算机科学与工程专业硕士,问天(北京)信息技术有限公司技术负责人,致力于信息检索方向的研究与开发。

作品目录

  • 第0章 Python源码剖析——编译Python
  • 0.1 Python总体架构
  • 0.2 Python源代码的组织
  • 0.3 Windows环境下编译Python
  • 0.4 Unix/Linux环境下编译Python
  • 0.5 修改Python源代码
  • 0.6 通往Python之路
  • 0.7 一些注意事项
  • 第1部分 Python内建对象
  • 第1章 Python对象初探
  • 1.1 Python内的对象
  • 1.2 类型对象
  • 1.3 Python对象的多态性
  • 1.4 引用计数
  • 1.5 Python对象的分类
  • 第2章 Python中的整数对象
  • 2.1 初识PyIntObject对象
  • 2.2 PyIntObject对象的创建和维护
  • 2.3 Hack PyIntObject
  • 第3章 Python中的字符串对象
  • 3.1 PyStringObject与PyString_Type
  • 3.2 创建PyStringObject对象
  • 3.3 字符串对象的intern机制
  • 3.4 字符缓冲池
  • 3.5 PyStringObject效率相关问题
  • 3.6 Hack PyStringObject
  • 第4章 Python中的List对象
  • 4.1 PyListObject对象
  • 4.2 PyListObject对象的创建与维护
  • 4.3 PyListObject对象缓冲池
  • 4.4 Hack PyListObject
  • 第5章 Python中的Dict对象
  • 5.1 散列表概述
  • 5.2 PyDictObject
  • 5.3 PyDictObject的创建和维护
  • 5.4 PyDictObject对象缓冲池
  • 5.5 Hack PyDictObject
  • 第6章 最简单的Python模拟——Small Python
  • 6.1 Small Python
  • 6.2 对象机制
  • 6.3 解释过程
  • 6.4 交互式环境
  • 第2部分 Python虚拟机
  • 第7章 Python的编译结果——Code对象与pyc文件
  • 7.1 Python程序的执行过程
  • 7.2 Python编译器的编译结果——PyCodeObject对象
  • 7.3 Pyc文件的生成
  • 7.4 Python的字节码
  • 7.5 解析pyc文件
  • 第8章 Python虚拟机框架
  • 8.1 Python虚拟机中的执行环境
  • 8.2 名字、作用域和名字空间
  • 8.3 Python虚拟机的运行框架
  • 8.4 Python运行时环境初探
  • 第9章 Python虚拟机中的一般表达式
  • 9.1 简单内建对象的创建
  • 9.2 复杂内建对象的创建
  • 9.3 其他一般表达式
  • 第10章 Python虚拟机中的控制流
  • 10.1 Python虚拟机中的if控制流
  • 10.2 Python虚拟机中的for循环控制流
  • 10.3 Python虚拟机中的while循环控制结构
  • 10.4 Python虚拟机中的异常控制流
  • 第11章 Python虚拟机中的函数机制
  • 11.1 PyFunctionObject对象
  • 11.2 无参函数调用
  • 11.3 函数执行时的名字空间
  • 11.4 函数参数的实现
  • 11.5 函数中局部变量的访问
  • 11.6 嵌套函数、闭包与decorator
  • 第12章 Python虚拟机中的类机制
  • 12.1 Python中的对象模型
  • 12.2 从type对象到class对象
  • 12.3 用户自定义class
  • 12.4 从class对象到instance对象
  • 12.5 访问instance对象中的属性
  • 12.6 千变万化的descriptor
  • 第13章 Python运行环境初始化
  • 13.1 线程环境初始化
  • 13.2 系统module初始化
  • 13.3 激活Python虚拟机
  • 第14章 Python模块的动态加载机制
  • 14.1 import前奏曲
  • 14.2 Python中import机制的黑盒探测
  • 14.3 import机制的实现
  • 14.4 Python中的import操作
  • 14.5 与module有关的名字空间问题
  • 第15章 Python多线程机制
  • 15.1 GIL与线程调度
  • 15.2 初见Python Thread
  • 15.3 Python线程的创建
  • 15.4 Python线程的调度
  • 15.5 Python子线程的销毁
  • 15.6 Python线程的用户级互斥与同步
  • 15.7 高级线程库——threading
  • 第16章 Python的内存管理机制
  • 16.1 内存管理架构
  • 16.2 小块空间的内存池
  • 16.3 循环引用的垃圾收集
  • 16.4 Python中的垃圾收集
展开全部