您的浏览历史

Python源码剖析--深度探索动态语言核心技术

 电子书Web试读版:试读本书 全部品种


精彩评论
市场价 : ¥69.80
普通会员 : ¥55.84
1-3星会员: ¥54.44
4-5星会员: ¥52.35(75折)

基本信息
【评  价】 (共 58 条) 参与评论
【作  者】陈儒 [同作者作品] [作译者介绍]
【出 版 社】 电子工业出版社     【书 号】 9787121068744
【上架时间】 2008-7-21
【出版日期】 2008 年6月 【开 本】 16开 【页 码】 480     【版 次】1-1
【所属分类】 计算机 > 软件与程序设计 > Python
编辑推荐

◆一本深入剖析Python具体实现的著作.
◆内容新鲜,采用最新的Python语言版本(2.5)
◆大量的图表形象地展示Python内部的运作机理..
◆在原理介绍的同时,带领读者一起动手对Python虚拟机进行改造
◆完整覆盖Python所有的核心议题,深刻揭示Python与C/C++之间如何互动
◆哲思自由软件社区倾力审校...



推荐阅读
Python短袖黑色(M号)

市场价:¥59.00
4-5星价:¥44.25
[购买] [收藏]

【内容简介】

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

【编辑推荐】

本书的主要特点:
  一本深入剖析Python具体实现的著作
  内容新鲜,采用最新的Python语言版本(25)
  大量的图表形象地展示Python内部的运作机理
  在原理介绍的同时,带领读者一起动手对Python虚拟机进行改造
  完整覆盖Python所有的核心议题,深刻揭示Python与C/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.1.1 对象机制的基石——PyObject
   1.1.2 定长对象和变长对象
  1.2 类型对象
   1.2.1 对象的创建
   1.2.2 对象的行为
   1.2.3 类型的类型
  1.3 PYTHON对象的多态性
  1.4 引用计数
<< 查看详细目录

【前言】

第一次接触Python,是通过《程序员》杂志上“恶魔吹着笛子来”的系列文章——《自由与繁荣的国度》。但是真正开始使用Python,还是在进入实验室,开始研究自然语言处理和信息检索之后。自然语言处理其实大部分的时间都在与文本打交道,需要进行大量的对文本分析、统计的工作。开始的时候,我使用的是C++,因为大学的时候第一门编程语言课就是C,其后转向C++是很自然的迁移。那时候觉得C++很有一种高贵的感觉,因为C++足够复杂,有足够多的trick,尤其是像模板和泛型编程这样的新鲜玩意儿。掌握这么复杂的东西,也就意味着你的脑袋跟这东西一样复杂,这是很能让人虚荣的一件事。.
C++的复杂性是个仁者见仁,智者见智.. << 查看前言

【序言】

推荐序一
让我们做得更好.
Python,我想已经不再是个陌生的词了,越来越多的人开始学习它,使用它,宣传它,甚至用它找到了工作。如果你了解Python,那么我想问一下,你对它有多了解呢?它是一种什么语言?如何实现的?有哪些对象,它们是如何处理的?你了解Python的虚拟机吗?了解它的运行环境吗?其实作为初学者或只是使用者,你的确不必了解这么多细节的内容,但是探究事物的原理,分析底层细节却也是许多人成为高手、“老鸟”的原因,因为你知道别人不知道的东西,掌握了别人不了解的技术,这些内容使得你的见解、分析,甚至作品都可能超过别人。那么本书就向你提供了一个了解Python底层细节的机会,你可以.. << 查看序言

【书摘】

第1章 Python对象初探
  对象是Python中最核心的一个概念,在Python的世界中,一切都是对象,一个整数是一个对象,一个字符串也是一个对象。更为奇妙的是,类型也是一种对象,整数类型是一个对象,字符串类型也是一个对象。换句话说,面向对象理论中的“类”和“对象”这两个概念在Python中都是通过Python内的对象来实现的。
  在Python中,已经预先定义了一些类型对象,比如int类型、string类型、dict类型等,这些我们称之为内建类型对象。这些类型对象实现了面向对象中“类”的概念;这些内建类型对象通过“实例化”,可以创建内建类型对象的实例对象,比如int对象、string对象、dict对象。类似的,这些实例对象可以视为面向对象理论中“对象”这个概念在Python中的体现。
  同时,Python还允许程序员通过class A(object)这样的表达式自己定义类型对象。基于这些类型对象,同样可以进行“实例化”的操作,创建的对象称为“实例对象”。Python中不光有着这些千差万别的对象,这些对象之间还存在着各种复杂的关系,从而构成了我们称之为“类型系统”或“对象体系”的东西。
  Python中的对象体系是一个庞大而复杂的体系,如果说在本书的第一章我就试图将这个体系阐释清楚,这只能说明我是个疯子。在本章中,我们的重点将放在了解对象在Python内部是如何表示的,更确切地说,因为Python是由C实现的,所以我们首先要弄清楚的一个问题就是:对象,这个神奇的东西,在C的层面,究竟长得是个什么模样,究竟是三头六臂,还是烈焰红唇。
  除此之外,我们还将了解到类型对象在C的层面是如何实现的,并初步认识类型对象的作用及它与实例对象的关系。总之,本章对Python对象体系的介绍力求简洁,但是并不肤浅,有的地方甚至会相当深入。因此,在本章的阅读中,如果有什么疑难的地方,没有关系,先放下,只要有一个直观的感觉就可以了,这并不妨碍你阅读接下来的内容。
  本章的目的是为能够顺利而快速地进入对内建对象的剖析打下必要的基础,至于对Python对象体系的详细剖析,会在第2部分的最后一章中介绍到。只有到了那个时候,我们才有足够的能力将这个体系看个明白。
  1.1 Python内的对象
  从1989年Guido在圣诞节揭开Python的大幕开始,一直到现在,Python经历了一次一次的升级,但是其实现语言一直都是ANSI C。我们知道,C并不是一个面向对象的语言,那么在Python中,它的对象机制是如何实现的呢?
  对于人的思维来说,对象是一个比较形象的概念,而对于计算机来说,对象却是一个抽象的概念。它并不能理解这是一个整数,那是一个字符串,对于计算机来说,它所知道的一切都是字节。通常的说法是,对象是数据以及基于这些数据的操作的集合。在计算机中,一个对象实际上就是一片被分配的内存空间,这些内存可能是连续的,也可能是离散的,这都不重要,重要的是这片内存在更高的层次上可以作为一个整体来考虑,这个整体就是一个对象。在这片内存中,存储着一系列的数据以及可以对这些数据进行修改或读取操作的一系列代码。
  在Python中,对象就是为C中的结构体在堆上申请的一块内存,一般来说,对象是不能被静态初始化的,并且也不能在栈空间上生存。唯一的例外就是类型对象,Python中所有的内建的类型对象(如整数类型对象,字符串类型对象)都是被静态初始化的。
  在Python中,一个对象一旦被创建,它在内存中的大小就是不变的了。这就意味着那些需要容纳可变长度数据的对象只能在对象内维护一个指向一块可变大小的内存区域的指针。为什么要设定这样一条特殊的规则呢,因为遵循这样的规则可以使通过指针维护对象的工作变得非常的简单。一旦允许对象的大小可在运行期改变,我们就可以考虑如下的情形。在内存中有对象A,并且其后紧跟着对象B。如果运行期某个时刻,A的大小增大了,这意味着必须将A整个移动到内存中的其他位置,否则A增大的部分将覆盖原本属于B的数据。只要将A移动到内存中的其他位置,那么所有指向A的指针就必须立即得到更新,光是想一想,就知道这样的工作是多么的繁琐。
  ……

【免费试读】

 电子书Web试读版:试读本书 全部品种
免费试读 第1章..   免费试读 第8章..   免费试读 第15章..  
>>进入在线免费试读
>>51CTO在线试读
评论交流 共有58人开贴评论  113人参与评论  36人参与打分 查看
22人
 61%
用户平均打分
我要写评论 help如何参与评论和打分
3人
 8%
5人
 13%
1人
 2%
5人
 13%

netyi79
一级评论员
评价等级:  
发表于:2008-10-19 10:28:00
看得出是首次写书,文本的行文结构,内容组织,节奏把握略有不足。至于文笔风格,这个是见仁见智的了。说到内容的含金量,一个词,超值。
回复 ( 1条评论-- 点击查看讨论 )
您觉得呢? 送鲜花 (得1支)  扔鸡蛋 (得0个)

bigsword

一级评论员
评价等级:  
发表于:2008-6-26 21:32:00
很久以前在作者的Blog上面看过他阅读Python源代码的笔记,不敢说有收获,但是为作者的精神所触动,也认为作者的文笔和条理很好。

很高兴有中文原创的书出版,这无论如何是一件值得高兴的事情。愿更多的人能够体会到python的简洁之美
回复 ( 1条评论-- 点击查看讨论 )
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得1个)

fullsail

三级评论员
评价等级:  
发表于:2008-7-21 10:19:00
我在书店已经买到了,国内称得上“著”的书不多,这本书不但是著,而是著得不错。看完第一个部分就已经收益不浅啦:

1、了解int、string,list,dict的内部机理,这样你可以避免一些很低效的使用模式。诸如多个字符串连接时如何做效率最好之类的话题,列表如何使用更高效,
dict用什么类型做key最高效?
2、了解Python背后的设计机制,这有什么好处?你可以调整编译时的参数,给自己定制一个Python解释器,看完第一部分,至少可以做调整缓冲的活计。
3、每个chapter最后的hack XXX,不错,有分析有实践。
4、可以知道limodou的真名,哈哈哈!

第一部分,讲一般的类型实现,难度不大,基本按看侦探小说(不是言情小说哦,多少也得过点脑子)的速度就行了;第二部分的虚拟机部分会更有意思一些。

不过我觉得也有些小缺点,遗憾:

1、YY的地方在可以接受的范围之内,但仍然觉得有点多~
2、略显哆嗦,所以我略过了文本若干。
3、陈述代码的方式,按照“Linux内核情景分析”的那样就好了。可能是我不习惯这种代码陈述方式的原因,感觉不少代码有头无尾。虽然我知道代码的逻辑可能已经结束,但看不到最后的}总有“请看下集”的感觉。
4、不是作者的问题,印刷错误有一些,但远在可以接受的范围之内。

从目前为止阅读体验上看,已经很不错了。
回复 ( 10条评论-- 点击查看讨论 )
您觉得呢? 送鲜花 (得3支)  扔鸡蛋 (得7个)

fullsail

三级评论员
评价等级:  
发表于:2008-7-28 13:14:00
讲Python虚拟机章节的质量也是令人满意的,我一直对异常实现比较好奇,原来是这样实现的呀!几种函数参数的介绍也不错,比如,为什么默认参数一定要定义在参数列表的尾部呢?后面部分的阅读难度要高一些,需要反复向前查找一些细节,这时就明显地感到没有索引的不爽了。至少是我,经常需要向前翻页查找相关字节码的细节,后面那几页广告换成索引就更好啦!唉,只能在扉页上自己做字节码的索引了。没有索引,这是国内图书的通病,甚至原著有的,译时也多半要“落下”,最令我深恶痛绝的就是Solaris internals。建议此书,整个电子版的索引,供俺们下载打印,夹到书中。
回复 ( 1条评论-- 点击查看讨论 )
您觉得呢? 送鲜花 (得2支)  扔鸡蛋 (得1个)

wangmiaomiaowang
一级评论员
  
发表于:2009-5-8 21:18:00
chinapub要运费,只好在卓越上买了,晕,卓越还送一本10快钱的书。。。无语
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)
我要写评论
查看所有评论交流(共58条)