Dive Into Python http://diveintopython.org/
Dive Into Python
2004 年 5 月 20 日
译文版 (5.4):2005 年 12 月—2006 年 4 月 (update-060425)
审校 (5.4b):2007 年 6 月—9 月
Copyright © 2000, 2001, 2002, 2003, 2004 Mark Pilgrim
(mailto:mark@diveintopython.org)
Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007 CPyUG (邮件列表)
(mailto:python-cn@googlegroups.com)
本书存放在 http://diveintopython.org/ (英文原版) 和
http://www.woodpecker.org.cn/diveintopython(中文版)。如果你是从别的地方
看到它的,可能看到的不是最新版本。
Permission is granted to copy, distribute, and/or modify this document under
the terms of the GNU Free Documentation License, Version 1.1 or any later
version published by the Free Software Foundation; with no Invariant Sections,
no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included
in Appendix G,
GNU Free Documentation License
.
允许在 GNU 自由文档协议 (1.1 版,或自由软件基金会出版的任何更新版本)
的许可下复制、发行且/或修改本文档;本文档没有不变部分,没有前封面文
本,没有封底文本。该协议的一份中文版参考译文包含在 Appendix H,
GNU
自由文档协议
中。
在这本书中的例程是自由软件。你可以在遵守 Python 协议 (Python 软件基金
会发布) 条款的规定下,重新发布,且/或修改它们。在 Appendix I,
Python
license
中包含了此协议的一份拷贝。
本译本由 Zoom.Quiet 负责项目管理。感谢啄木鸟社区
(http://www.woodpecker.org.cn)提供 SVN 项目空间
(http://svn.woodpecker.org.cn/woodpecker/zh-
translations/trunk/diveintopython/zh-cn/)和 Wiki 协作空间
(http://wiki.woodpecker.org.cn/moin/DiveIntoPythonZh)。
- 1 -
Dive Into Python http://diveintopython.org/
本译本由 啄木鸟/CPUG (http://wiki.woodpecker.org.cn/moin/CPUG) 的 obp 团
队完成。可以在修订历史 (appendix/history.html)中找到一个翻译和修订人员
的清单。如果您对当前版本的 Dive Into Python 中文版有任何意见和建议,可
以到本书的 Wiki 协作空间
(http://wiki.woodpecker.org.cn/moin/DiveIntoPythonZh)中留下你的评论。
本译文遵守 GFDL 的规定。你可以复制、发行、修改此文档,但请保留此版权
信息。
- 2 -
Dive Into Python http://diveintopython.org/
Dive Into Python ................................................................................................................. 1
Chapter 1. 安装 Python ...................................................................................................... 8
1.1. 哪一种 Python 适合您? ...................................................................................... 8
1.2. Windows 上的 Python ........................................................................................... 8
1.3. Mac OS X 上的 Python ....................................................................................... 10
1.4. Mac OS 9 上的 Python ...................................................................................... 12
1.5. RedHat Linux 上的 Python .................................................................................. 13
1.6. Debian GNU/Linux 上的 Python .......................................................................... 14
1.7. 从源代码安装 Python ....................................................................................... 15
1.8. 使用 Python 的交互 Shell .................................................................................. 16
1.9. 小结 ................................................................................................................. 16
Chapter 2. 第一个 Python 程序 ........................................................................................ 18
2.1. 概览 ................................................................................................................. 18
2.2. 函数声明 .......................................................................................................... 19
2.3. 文档化函数 ...................................................................................................... 20
2.4. 万物皆对象 ...................................................................................................... 21
2.5. 代码缩进 .......................................................................................................... 24
2.6. 测试模块 .......................................................................................................... 25
Chapter 3. 内置数据类型 ................................................................................................ 27
3.1. Dictionary 介绍 .................................................................................................. 27
3.2. List 介绍 ........................................................................................................... 30
3.3. Tuple 介绍 ........................................................................................................ 36
3.4. 变量声明 .......................................................................................................... 38
3.5. 格式化字符串 ................................................................................................... 41
3.6. 映射 list ............................................................................................................ 43
3.7. 连接 list 与分割字符串 ..................................................................................... 45
3.8. 小结 ................................................................................................................. 48
Chapter 4. 自省的威力 .................................................................................................... 49
4.1. 概览 ................................................................................................................. 49
4.2. 使用可选参数和命名参数 ................................................................................. 51
4.3. 使用 type 、 str 、 dir 和其它内置函数 .................................................................. 52
4.4. 通过 getattr 获取对象引用 ................................................................................ 56
4.5. 过滤列表 .......................................................................................................... 59
4.6. and 和 or 的特殊性质 ........................................................................................ 61
4.7. 使用 lambda 函数 ............................................................................................. 64
4.8. 全部放在一起 ................................................................................................... 66
4.9. 小结 ................................................................................................................. 69
Chapter 5. 对象和面向对象 ............................................................................................. 71
5.1. 概览 ................................................................................................................. 71
5.2. 使用 from module import 导入模块 ..................................................................... 74
5.3. 类的定义 .......................................................................................................... 76
- 3 -
Dive Into Python http://diveintopython.org/
5.4. 类的实例化 ...................................................................................................... 79
5.5. 探索 UserDict :一个封装类 .............................................................................. 81
5.6. 专用类方法 ...................................................................................................... 84
5.7. 高级专用类方法 ............................................................................................... 88
5.8. 类属性介绍 ...................................................................................................... 90
5.9. 私有函数 .......................................................................................................... 92
5.10. 小结 ............................................................................................................... 93
Chapter 6. 异常和文件处理 ............................................................................................. 95
6.1. 异常处理 .......................................................................................................... 95
6.2. 与文件对象共事 ............................................................................................... 99
6.3. for 循环 .......................................................................................................... 103
6.4. 使用 sys.modules ............................................................................................ 107
6.5. 与目录共事 .................................................................................................... 109
6.6. 全部放在一起 ................................................................................................. 114
6.7. 小结 ............................................................................................................... 115
Chapter 7. 正则表达式 .................................................................................................. 118
7.1. 概览 ............................................................................................................... 118
7.2. 个案研究:街道地址 ...................................................................................... 118
7.3. 个案研究:罗马字母 ...................................................................................... 120
7.4. 使用 {n,m} 语法 .............................................................................................. 124
7.5. 松散正则表达式 ............................................................................................. 128
7.6. 个案研究:解析电话号码 ............................................................................... 130
7.7. 小结 ............................................................................................................... 135
Chapter 8. HTML 处理 .................................................................................................... 137
8.1. 概览 ............................................................................................................... 137
8.2. sgmllib.py 介绍 ................................................................................................ 143
8.3. 从 HTML 文档中提取数据 ............................................................................... 146
8.4. BaseHTMLProcessor.py 介绍 ............................................................................ 149
8.5. locals 和 globals .............................................................................................. 152
8.6. 基于 dictionary 的字符串格式化 ...................................................................... 156
8.7. 给属性值加引号 ............................................................................................. 158
8.8. dialect.py 介绍 ................................................................................................ 159
8.9. 全部放在一起 ................................................................................................. 162
8.10. 小结 ............................................................................................................. 165
Chapter 9. XML 处理 ...................................................................................................... 167
9.1. 概览 ............................................................................................................... 167
9.2. 包 ................................................................................................................... 176
9.3. XML 解析 ........................................................................................................ 178
9.4. Unicode ........................................................................................................... 182
9.5. 搜索元素 ........................................................................................................ 187
9.6. 访问元素属性 ................................................................................................. 189
9.7. Segue [9] ........................................................................................................ 191
- 4 -
Dive Into Python http://diveintopython.org/
Chapter 10. 脚本和流 .................................................................................................... 192
10.1. 抽象输入源 .................................................................................................. 192
10.2. 标准输入、输出和错误 ................................................................................ 197
10.3. 查询缓冲节点 ............................................................................................... 202
10.4. 查找节点的直接子节点 ................................................................................ 203
10.5. 根据节点类型创建不同的处理器 .................................................................. 204
10.6. 处理命令行参数 ........................................................................................... 207
10.7. 全部放在一起 ............................................................................................... 211
10.8. 小结 ............................................................................................................. 213
Chapter 11. HTTP Web 服务 ........................................................................................... 214
11.1. 概览 ............................................................................................................. 214
11.2. 避免通过 HTTP 重复地获取数据 .................................................................... 217
11.3. HTTP 的特性 ................................................................................................. 218
11.4. 调试 HTTP web 服务 ...................................................................................... 220
11.5. 设置 User-Agent ............................................................................................. 222
11.6. 处理 Last-Modified 和 ETag ............................................................................ 224
11.7. 处理重定向 .................................................................................................. 228
11.8. 处理压缩数据 ............................................................................................... 233
11.9. 全部放在一起 ............................................................................................... 236
11.10. 小结 ........................................................................................................... 239
Chapter 12. SOAP Web 服务 ........................................................................................... 240
12.1. 概览 ............................................................................................................. 240
12.2. 安装 SOAP 库 ................................................................................................ 242
12.3. 步入 SOAP .................................................................................................... 244
12.4. SOAP 网络服务查错 ..................................................................................... 245
12.5. WSDL 介绍 .................................................................................................... 248
12.6. 以 WSDL 进行 SOAP 内省 .............................................................................. 249
12.7. 搜索 Google .................................................................................................. 252
12.8. SOAP 网络服务故障排除 .............................................................................. 255
12.9. 小结 ............................................................................................................. 260
Chapter 13. 单元测试 .................................................................................................... 261
13.1. 罗马数字程序介绍 II ..................................................................................... 261
13.2. 深入 ............................................................................................................. 262
13.3. romantest.py 介绍 ......................................................................................... 263
13.4. 正面测试 (Testing for success) ....................................................................... 267
13.5. 负面测试 (Testing for failure) .......................................................................... 269
13.6. 完备性检测 (Testing for sanity) ....................................................................... 271
Chapter 14. 测试优先编程 ............................................................................................ 275
14.1. roman.py, 第 1 阶段 ...................................................................................... 275
14.2. roman.py, 第 2 阶段 ...................................................................................... 279
14.3. roman.py, 第 3 阶段 ...................................................................................... 284
14.4. roman.py, 第 4 阶段 ...................................................................................... 288
- 5 -
评论0
最新资源