按:一本挺靠谱的书,一个挺靠谱的人:D 踏踏实实做事情的人总是令人心生敬意。从作者的前言就可以看出来这是本值得一读的书。我不推荐对所有的细节穷根究底,有一些细节只是..细节而已。但有一些细节却是本质的,这时就体现出知其所以然的重要性了。只要有鉴别力的看待,分清本质细节和非本质细节,这本书的看点应该不会少。作者前言中提到花了两年多的时间来做这件事情,两年的时间,如果专心于某件事情的话,实际上是一段很长很长的时间,所以我相信书中肯定是有料的。
以下转载前言(猥琐的China-pub网站居然把"前言"页面的文字间随机填充了白色数字字符,使得别人无法拷贝,靠!它又不是靠文章浏览量赚钱的,无语了,实在不够大气.. )
搜了一下,作者的博客在此,上面有大量连载的《Python源码剖析》。
前言
第一次接触Python,是通过《程序员》杂志上"恶魔吹着笛子来"的系列文章----《自由与繁荣的国度》。但是真正开始使用Python,还是在进入实验 室,开始研究自然语言处理和信息检索之后。自然语言处理其实大部分的时间都在与文本打交道,需要进行大量的对文本分析、统计的工作。开始的时候,我使用的 是C++,因为大学的时候第一门编程语言课就是C,其后转向C++是很自然的迁移。那时候觉得C++很有一种高贵的感觉,因为C++足够复杂,有足够多的 trick,尤其是像模板和泛型编程这样的新鲜玩意儿。掌握这么复杂的东西,也就意味着你的脑袋跟这东西一样复杂,这是很能让人虚荣的一件事。
C++的复杂性是个仁者见仁,2智者见智的话题,2但其实回到文本处理这个话题上来说,2C++的STL在很大程度上已经足够好用了.a文本处理不是服务器,2所以不需要考虑自己管理内存,2不需要考虑这个模式那个模式,2STL提供了足够多的工具,2简单组装一下就可以用了.
但俗话说得好,3"不怕不识货,3就怕货比货",3当我开始尝试用Python来进行日常的工作之后,3突然发现C++太复杂了.对于Python,3我的感觉只有四个字:摧枯拉朽.a我只需要简单地写一个lc=c[c],3再也不用写诸如list<cmapcstring>c>clc=clist<cmapcstring>c>()这样折磨人眼的东西了,3这使得代码量急剧减少.a对于采用Python这样的英明决策,3我想,3最满意的就是我的手指头了.(剩余部分)
目录
第0章 PYTHON源码剖析--编译PYTHON 1
0.1 PYTHON总体架构 1
0.2 PYTHON源代码的组织 2
0.3 WINDOWS环境下编译PYTHON 4
0.4 UNIX/LINUX环境下编译PYTHON 7
0.5 修改PYTHON源代码 7
0.6 通往PYTHON之路 9
0.7 一些注意事项 10
第1部分 PYTHON内建对象 13
第1章 PYTHON对象初探 15
1.1 PYTHON内的对象 16
1.1.1 对象机制的基石----PyObject 17
第6章 最简单的PYTHON模拟----SMALL PYTHON 101
6.1 SMALL PYTHON 101
6.2 对象机制 102
6.3 解释过程 106
6.4 交互式环境 108
第2部分 PYTHON虚拟机 111
第7章 PYTHON的编译结果--CODE对象与PYC文件 113
7.1 PYTHON程序的执行过程 113
7.2 PYTHON编译器的编译结果--PYCODEOBJECT对象 115
7.2.1 PyCodeObject对象与pyc文件 115
7.2.2 Python源码中的PyCodeObject 116
7.2.3 pyc文件 117
7.2.4 在Python中访问PyCodeObject对象 120
7.3 PYC文件的生成 120
7.3.1 创建pyc文件的具体过程 120
7.3.2 向pyc文件写入字符串 124
7.3.3 一个PyCodeObject,多个PyCodeObject 128
7.4 PYTHON的字节码 129
7.5 解析PYC文件 130
第8章 PYTHON虚拟机框架 133
8.1 PYTHON虚拟机中的执行环境 133
8.1.1 Python源码中的PyFrameObject 136
8.1.2 PyFrameObject中的动态内存空间 138
8.1.3 在Python中访问PyFrameObject对象 139
8.2 名字、作用域和名字空间 140
8.2.1 Python程序的基础结构----module 140
8.2.2 约束与名字空间 141
8.2.3 作用域与名字空间 142
8.3 PYTHON虚拟机的运行框架 149
8.4 PYTHON运行时环境初探 152
第9章 PYTHON虚拟机中的一般表达式 157
9.1 简单内建对象的创建 157
9.2 复杂内建对象的创建 163
9.3 其他一般表达式 166
9.3.1 符号搜索 166
9.3.2 数值运算 169
9.3.3 信息输出 171
第10章 PYTHON虚拟机中的控制流 173
10.1 PYTHON虚拟机中的IF控制流 173
10.1.1 研究对象--if_control.py 173
10.1.2 比较操作 175
10.1.3 指令跳跃 179
10.2 PYTHON虚拟机中的FOR循环控制流 183
10.2.1 研究对象----for_control.py 184
10.2.2 循环控制结构的初始化 184
10.2.3 迭代控制 188
10.2.4 终止迭代 191
10.3 PYTHON虚拟机中的WHILE循环控制结构 192
10.3.1 研究对象----while_control.py 192
15.7 高级线程库----THREADING 423
2008/7/7 pongba <pon...@gmail.com>:
> 按:一本挺靠谱的书,一个挺靠谱的人:D
> 踏踏实实做事情的人总是令人心生敬意。从作者的前言就可以看出来这是本值得一读的书。我不推荐对所有的细节穷根究底,有一些细节只是..细节而已。但有一些细节却是本质的,这时就体现出知其所以然的重要性了。只要有鉴别力的看待,分清本质细节和非本质细节,这本书的看点应该不会少。作者前言中提到花了两年多的时间来做这件事情,两年的时间,如果专心于某件事情的话,实际上是一段很长很长的时间,所以我相信书中肯定是有料的。
>
> 以下转载前言(猥琐的China-pub网站居然把"前言"页面的文字间随机填充了白色数字字符,使得别人无法拷贝,靠!它又不是靠文章浏览量赚钱的,无语了,实在不够大气..
> )
>
> 搜了一下,作者的博客在此,上面有大量连载的《Python源码剖析》。
>
> 前言
> 第一次接触Python,是通过《程序员》杂志上"恶魔吹着笛子来"的系列文章----《自由与繁荣的国度》。但是真正开始使用Python,还是在进入实验
> 室,开始研究自然语言处理和信息检索之后。自然语言处理其实大部分的时间都在与文本打交道,需要进行大量的对文本分析、统计的工作。开始的时候,我使用的
> 是C++,因为大学的时候第一门编程语言课就是C,其后转向C++是很自然的迁移。那时候觉得C++很有一种高贵的感觉,因为C++足够复杂,有足够多的
> trick,尤其是像模板和泛型编程这样的新鲜玩意儿。掌握这么复杂的东西,也就意味着你的脑袋跟这东西一样复杂,这是很能让人虚荣的一件事。
>
> C++的复杂性是个仁者见仁,2智者见智的话题,2但其实回到文本处理这个话题上来说,2C++的STL在很大程度上已经足够好用了.a文本处理不是服务器,2所以不需要考虑自己管理内存,2不需要考虑这个模式那个模式,2STL提供了足够多的工具,2简单组装一下就可以用了.
>
> 但俗话说得好,3"不怕不识货,3就怕货比货",3当我开始尝试用Python来进行日常的工作之后,3突然发现C++太复杂了.对于Python,3我的感觉只有四个字:摧枯拉朽.a我只需要简单地写一个lc=c[c],3再也不用写诸如list<cmapcstring>c>clc=clist<cmapcstring>c>()这样折磨人眼的东西了,3这使得代码量急剧减少.a对于采用Python这样的英明决策,3我想,3最满意的就是我的手指头了.(剩余部分)
>
> 目录
> 第0章 PYTHON源码剖析--编译PYTHON 1
> 0.1 PYTHON总体架构 1
> 0.2 PYTHON源代码的组织 2
> 0.3 WINDOWS环境下编译PYTHON 4
> 0.4 UNIX/LINUX环境下编译PYTHON 7
> 0.5 修改PYTHON源代码 7
> 0.6 通往PYTHON之路 9
> 0.7 一些注意事项 10
> 第1部分 PYTHON内建对象 13
> 第1章 PYTHON对象初探 15
> 1.1 PYTHON内的对象 16
> 1.1.1 对象机制的基石----PyObject 17
> 第6章 最简单的PYTHON模拟----SMALL PYTHON 101
> 6.1 SMALL PYTHON 101
> 6.2 对象机制 102
> 6.3 解释过程 106
> 6.4 交互式环境 108
> 第2部分 PYTHON虚拟机 111
> 第7章 PYTHON的编译结果--CODE对象与PYC文件 113
> 7.1 PYTHON程序的执行过程 113
> 7.2 PYTHON编译器的编译结果--PYCODEOBJECT对象 115
> 7.2.1 PyCodeObject对象与pyc文件 115
> 7.2.2 Python源码中的PyCodeObject 116
> 7.2.3 pyc文件 117
> 7.2.4 在Python中访问PyCodeObject对象 120
> 7.3 PYC文件的生成 120
> 7.3.1 创建pyc文件的具体过程 120
> 7.3.2 向pyc文件写入字符串 124
> 7.3.3 一个PyCodeObject,多个PyCodeObject 128
> 7.4 PYTHON的字节码 129
> 7.5 解析PYC文件 130
> 第8章 PYTHON虚拟机框架 133
> 8.1 PYTHON虚拟机中的执行环境 133
> 8.1.1 Python源码中的PyFrameObject 136
> 8.1.2 PyFrameObject中的动态内存空间 138
> 8.1.3 在Python中访问PyFrameObject对象 139
> 8.2 名字、作用域和名字空间 140
> 8.2.1 Python程序的基础结构----module 140
> 8.2.2 约束与名字空间 141
> 8.2.3 作用域与名字空间 142
> 8.3 PYTHON虚拟机的运行框架 149
> 8.4 PYTHON运行时环境初探 152
> 第9章 PYTHON虚拟机中的一般表达式 157
> 9.1 简单内建对象的创建 157
> 9.2 复杂内建对象的创建 163
> 9.3 其他一般表达式 166
> 9.3.1 符号搜索 166
> 9.3.2 数值运算 169
> 9.3.3 信息输出 171
> 第10章 PYTHON虚拟机中的控制流 173
> 10.1 PYTHON虚拟机中的IF控制流 173
> 10.1.1 研究对象--if_control.py 173
> 10.1.2 比较操作 175
> 10.1.3 指令跳跃 179
> 10.2 PYTHON虚拟机中的FOR循环控制流 183
> 10.2.1 研究对象----for_control.py 184
> 10.2.2 循环控制结构的初始化 184
> 10.2.3 迭代控制 188
> 10.2.4 终止迭代 191
> 10.3 PYTHON虚拟机中的WHILE循环控制结构 192
> 10.3.1 研究对象----while_control.py 192
> 15.7 高级线程库----THREADING 423
--
Everything is simple!