《Python源码剖析》可以买来看看

hulei2 2008-07-11 04:11:25
第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
1.1.2 定长对象和变长对象 18
1.2 类型对象 19
1.2.1 对象的创建 20
1.2.2 对象的行为 22
1.2.3 类型的类型 24
1.3 PYTHON对象的多态性 25
1.4 引用计数 26
1.5 PYTHON对象的分类 28
第2章 PYTHON中的整数对象 29
2.1 初识PYINTOBJECT对象 29
2.2 PYINTOBJECT对象的创建和维护 34
2.2.1 对象创建的3种途径 34
2.2.2 小整数对象 35
2.2.3 大整数对象 36
2.2.4 添加和删除 37
2.2.5 小整数对象池的初始化 43
2.3 HACK PYINTOBJECT 44
第3章 PYTHON中的字符串对象 47
3.1 PYSTRINGOBJECT与PYSTRING_TYPE 47
3.2 创建PYSTRINGOBJECT对象 49
3.3 字符串对象的INTERN机制 52
3.4 字符缓冲池 56
3.5 PYSTRINGOBJECT效率相关问题 58
3.6 HACK PYSTRINGOBJECT 60
第4章 PYTHON中的LIST对象 63
4.1 PYLISTOBJECT对象 63
4.2 PYLISTOBJECT对象的创建与维护 64
4.2.1 创建对象 64
4.2.2 设置元素 66
4.2.3 插入元素 68
4.2.4 删除元素 72
4.3 PYLISTOBJECT对象缓冲池 74
4.4 HACK PYLISTOBJECT 75
第5章 PYTHON中的DICT对象 77
5.1 散列表概述 78
5.2 PYDICTOBJECT 79
5.2.1 关联容器的entry 79
5.2.2 关联容器的实现 80
5.3 PYDICTOBJECT的创建和维护 82
5.3.1 PyDictObject对象创建 82
5.3.2 PyDictObject中的元素搜索 83
5.3.3 插入与删除 89
5.3.4 操作示例 95
5.4 PYDICTOBJECT对象缓冲池 96
5.5 HACK PYDICTOBJECT 97
第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
10.3.2 循环终止 194
10.3.3 循环的正常运转 195
10.3.4 循环流程改变指令之continue 195
10.3.5 循环流程改变指令之break 196
10.4 PYTHON虚拟机中的异常控制流 197
10.4.1 Python中的异常机制 197
10.4.2 Python中的异常控制语义结构 207
第11章 PYTHON虚拟机中的函数机制 215
11.1 PYFUNCTIONOBJECT对象 215
11.2 无参函数调用 217
11.2.1 函数对象的创建 217
11.2.2 函数调用 220
11.3 函数执行时的名字空间 223
11.4 函数参数的实现 225
11.4.1 参数类别 226
11.4.2 位置参数的传递 229
11.4.3 位置参数的访问 233
11.4.4 位置参数的默认值 235
11.4.5 扩展位置参数和扩展键参数 243
11.5 函数中局部变量的访问 246
11.6 嵌套函数、闭包与DECORATOR 248
11.6.1 实现闭包的基石 249
11.6.2 闭包的实现 251
11.6.3 Decorator 257
第12章 PYTHON虚拟机中的类机制 259
12.1 PYTHON中的对象模型 259
12.1.1 对象间的关系 260
12.1.2 <type ‘type’>和<type ‘object’> 262
12.2 从TYPE对象到CLASS对象 263
12.2.1 处理基类和type信息 266
12.2.2 处理基类列表 267
12.2.3 填充tp_dict 268
12.3 用户自定义CLASS 282
12.3.1 创建class对象 283
12.4 从CLASS对象到INSTANCE对象 293
12.5 访问INSTANCE对象中的属性 296
12.5.1 instance对象中的__dict__ 298
12.5.2 再论descriptor 299
12.5.3 函数变身 302
12.5.4 无参函数的调用 304
12.5.5 带参函数的调用 307
12.5.6 Bound Method和Unbound Method 308
12.6 千变万化的DESCRIPTOR 310
第3部分 PYTHON高级话题 313
第13章 PYTHON运行环境初始化 315
13.1 线程环境初始化 315
13.1.1 线程模型回顾 315
13.1.2 初始化线程环境 316
13.2 系统MODULE初始化 320
13.2.1 创建__builtin__ module 320
13.2.2 创建sys module 327
13.2.3 创建__main__ module 330
13.2.4 设置site-specific的module的搜索路径 331
13.3 激活PYTHON虚拟机 334
13.3.1 交互式运行方式 335
13.3.2 脚本文件运行方式 336
13.3.3 启动虚拟机 337
13.3.4 名字空间 339
第14章 PYTHON模块的动态加载机制 343
14.1 IMPORT前奏曲 343
14.2 PYTHON中IMPORT机制的黑盒探测 347
14.2.1 标准import 347
14.2.2 嵌套import 351
14.2.3 import package 352
14.2.4 from与import 356
14.2.5 符号重命名 358
14.2.6 符号的销毁与重载 359
14.3 IMPORT机制的实现 362
14.3.1 解析module/package树状结构 365
14.3.2 加载module/pakcage 370
14.3.3 from与import 381
14.4 PYTHON中的IMPORT操作 382
14.4.1 import module 383
14.4.2 import package 383
14.4.3 from & import 383
14.4.4 import & as 384
14.4.5 reload 385
14.4.6 内建module:imp 386
14.5 与MODULE有关的名字空间问题 386
第15章 PYTHON多线程机制 391
15.1 GIL与线程调度 391
15.2 初见PYTHON THREAD 394
15.3 PYTHON线程的创建 396
15.3.1 建立多线程环境 397
15.3.2 创建线程 402
15.4 PYTHON线程的调度 413
15.4.1 标准调度 413
15.4.2 阻塞调度 416
15.5 PYTHON子线程的销毁 419
15.6 PYTHON线程的用户级互斥与同步 420
15.6.1 用户级互斥与同步 420
15.6.2 Lock对象 421
15.7 高级线程库——THREADING 423
15.7.1 Threading Module概述 424
15.7.2 Threading的线程同步工具 425
15.7.3 Threading中的Thread 426
第16章 PYTHON的内存管理机制 429
16.1 内存管理架构 429
16.2 小块空间的内存池 432
16.2.1 Block 432
16.2.2 Pool 434
16.2.3 arena 438
16.2.4 内存池 442
16.3 循环引用的垃圾收集 457
16.3.1 引用计数与垃圾收集 457
16.3.2 三色标记模型 458
16.4 PYTHON中的垃圾收集 459
16.4.1 可收集对象链表 460
16.4.2 分代的垃圾收集 463
16.4.3 Python中的标记—清除方法 466
16.4.4 垃圾收集全景 475
16.4.5 Python中的gc模块 477
16.4.6 总结 479

...全文
598 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
四哥 2008-11-06
  • 打赏
  • 举报
回复
买了一本,这书还可以。要是多讲一下C扩展就更好了
harold2007 2008-10-07
  • 打赏
  • 举报
回复
这本书是作者原创
当然是中文的 ~
我前段时间去书店看到了 ~
翻了翻 还不错 ~
主要是讲~python内部运行机制的
看了后应该会明白 python为什么会这样去工作 ~
chinablueker 2008-10-04
  • 打赏
  • 举报
回复
很好,我有一本
ZangXT 2008-10-03
  • 打赏
  • 举报
回复
翻了一下,感觉不错。
iambic 2008-09-29
  • 打赏
  • 举报
回复
你要什么源代码?
cmr021f1d 2008-09-28
  • 打赏
  • 举报
回复
有源代码吗?

楼主发下吧
bvbook 2008-07-28
  • 打赏
  • 举报
回复
这个是原创的,不是翻译的。
《Python源码剖析》与Cobra开源项目
Robert:
为了让这本书的阅读变得更有趣,也为了帮助读者更好地利用这本书,我在Google
Code上发起了一个旨在可视化Python虚拟机的开源项目——Cobra(http://code.google.com/p/python-cobra/
),其目的在于将Python虚拟机在执行一条条字节码指令时的运行时环境,以及虚拟机的状态变化,以可视的形式展现出来,以更加生动形象的方式加深读者对Python虚拟机的理解。

同时,也希望这个项目能成为有兴趣的读者锻炼自己改造Python虚拟机的能力的平台。目前该项目还处于发展初期,目前仅仅实现了一般表达式的可视化,希望感兴趣的朋友能一起加入到这个有趣的项目中来。附件中图片是目前Cobra对简单的一般表达式的可视化效果。

另外,可以通过我的blog(http://blog.csdn.net/balabalamerobert)查看一下这个项目之前的一些信息。

想要运行的朋友可以用svn checkout
*http*://python-cobra.googlecode.com/svn/trunk/python-cobra-read-only检出代码
其中包含两个部分:
1、cobraserver :这个是修改后的Python虚拟机
2、cobraweb :这个是基于Django和Ajax的前台可视化界面

编译cobraserver后,会得到一个cobra-vm-server.exe,这是服务器端,启动,然后在cobraweb中执行manage.py
runserver,即可通过web界面与虚拟机端通信,可视化Python虚拟机。

需要注意的是,目前cobraserver只有Windows平台的网络代码,所以目前只能在Windows平台运行。同时,Web前端浏览器最好采用FF2,IE也没问题,但是美观可能不够,FF3改变了
上载文件的input的value值,所以目前FF3无法正常运作。
--
Robert
关注Python 关注搜索
Dynamic Life——http://blog.csdn.net/balabalamerobert
bvbook 2008-07-22
  • 打赏
  • 举报
回复
已经上市了。
互动网有卖,卓越要等几天。
山水孤狼 2008-07-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 libralibra 的回复:]
这个主要是python的内部机制解释的多点
实际编码倒不是很多
我有电子版,看了2天,放弃了
[/Quote]


楼上的是不是中文的电子版?
libralibra 2008-07-21
  • 打赏
  • 举报
回复
这个主要是python的内部机制解释的多点
实际编码倒不是很多
我有电子版,看了2天,放弃了
liubingqian 2008-07-14
  • 打赏
  • 举报
回复
目录就没必要copy了,china-pub、CSDN上都有。
CHINAhello 2008-07-13
  • 打赏
  • 举报
回复
还没出版吧,在卓越上没查到
iambic 2008-07-13
  • 打赏
  • 举报
回复
应该是原创吧。很久以前就见一哥门在CSDN的blog上写这些。
fox000002 2008-07-11
  • 打赏
  • 举报
回复
翻译版?

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧