Python源码剖析

陈儒

出版时间

2008-06-01

ISBN

9787121068744

评分

★★★★★

标签

编程

书籍介绍

作为主流的动态语言,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程序员阅读

AI导读
核心看点
  • 以CPython为对象,深入剖析Python虚拟机及高级特性
  • 详解整数、字符串、列表、字典等内置对象的C语言实现
  • 揭示内存管理、多线程、动态加载等核心技术的运行原理
适合谁读
  • 希望深入理解Python底层机制的进阶程序员
  • 对动态语言实现原理感兴趣的开发者
  • 需要将Python与C/C++交互使用的技术人员
读前提醒
  • 需具备扎实的C语言基础,否则阅读源码剖析会很吃力
  • 书中基于Python 2.5源码,部分细节与新版本存在差异
  • 建议结合Python官方文档阅读,以验证最新版本的实现
读者共识
  • 帮助读者从知其然到知其所以然,提升对Python的理解
  • 部分章节存在错别字,且某些解释略显冗长不够简练
  • 虽对编码直接帮助有限,但极大提升了看问题的视角

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "Warning Due to the precarious circumstances under which __del__() methods are invoked, exceptions that occur during their execution are ignored, and a warning is printed to sys.stderr instead. Also, when __del__() is invoked in response to a module being deleted (e.g., when execution of the program "
  • "对于一段Python代码,其对应的PyCodeObject对象只有一个,而代码所对应的PyFunctionObject对象却可能有很多个,比如一个函数多次调用,则Python会在运行时创建多个PyFunctionObject对象,"
  • "Python的arena从不释放pool。"
  • "decorator"
  • "Python中的列表对象实际上是分为两部分的,一是PyListObject对象本身,二则是PyListObject对象维护的元素列表。这是两块分离的内存,它们通过ob_item建立了联系。"
  • "Tuples are not constant lists -- this is a common misconception. Lists are intended to be homogeneous sequences, while tuples are hetereogeneous data structures."
  • "A great example of the complementary use of both types is the Python DB API's fetchmany() method, which returns the result of a query as a list of tuples. The result set as a whole is a list, because rows are functionally equivalent (homogeneous); the individual rows are tuples, because rows are coh"
  • "值得注意的是,第一次调用PyDict_New时,会创建前面提到的那个dummy对象。原来dummy竟然是一个PyStringObject对象,实际上,它仅仅是用来作为一种指示标志,表明该entry曾被使用过,且探测序列下一个位置的entry可能是有效的,从而防止探测序列中断。"
目录
第0章 Python源码剖析——编译Python
0.1 Python总体架构
0.2 Python源代码的组织
0.3 Windows环境下编译Python
0.4 Unix/Linux环境下编译Python

显示全部
用户评论
常备的手边书,深入了解Python的好书
我们出版的好书,即将重印。
虽然这本书很不错,但读过一次之后没有得到想像中的那么多的收获。 作者重点介绍了几种数据类型在Python的内部实现,这是很不错的,但无论如何也看不出来这是在“深度探索”之后得到的“核心技术”。另外虽然此书能使我们对Python的内部实现有所了解,但在Python编码上却没什么帮助。
作者频繁地恶意卖萌,差评。
值得看
填补了国内的空白吧
书肯定是好书,可是为什么作者这十几年了都没再修订这本书,也没更新版本?估计作者自己也没想到自己写的书过去十几年了还有人惦记把? 看来作者是去干大事情了,去干更有意义的事情了,已经没空来修订他的大作了。
大学时期读过的最好的python书
深度剖析
2020二刷补标
下载
收藏