关于我们
![]() ![]() |
Python精粹(英文版) 读者对象:本书适合Python程序员及相关科技人员、工程师、软件专业人士阅读。
这是一本关于Python编程的书。它并未覆盖Python的方方面面,其重点是呈现现代且精选的Python语言核心,即侧重于Python编程本身。本书包括抽象实现、程序结构、数据、函数、对象、模块等主题,这些主题能够有效帮助Python程序员应对各种项目规模的挑战。同时,本书通常会省略那些完全可以通过IDE轻松获取的参考内容(例如函数列表、命令名称、参数等),并特意不去描述Python编辑器工具、IDE、部署等快速变化的内容及相关问题。
大卫·M.比兹利是Python Essential Reference,Fourth Edition(Addison-Wesley,2010年出版)和Python Cookbook,Third Edition(O‘Reilly,2013年出版)的作者。他目前在自己的公司Dabeaz LLC教授高级计算机科学课程。自1996年以来,他一直在使用及教授Python,并进行Python方面的写作及演讲。
1 Python 基础 .................................................................................. 15
1.1 运行 Python .............................................................................................................. 15 1.2 Python 程序 .............................................................................................................. 16 1.3 基本类型、变量与表达式 ...................................................................................... 17 1.4 算术运算符 .............................................................................................................. 19 1.5 条件与控制流 .......................................................................................................... 21 1.6 文本串 ...................................................................................................................... 23 1.7 文件输入与输出 ...................................................................................................... 26 1.8 列表 .......................................................................................................................... 27 1.9 元组 .......................................................................................................................... 29 1.10 Set ........................................................................................................................... 31 1.11 字典 ........................................................................................................................ 32 1.12 迭代与循环 ............................................................................................................ 35 1.13 函数 ........................................................................................................................ 36 1.14 异常 ........................................................................................................................ 38 1.15 程序终止 ................................................................................................................ 40 1.16 对象和类 ................................................................................................................ 40 1.17 模块 ........................................................................................................................ 44 1.18 脚本编写 ................................................................................................................ 46 1.19 包 ............................................................................................................................ 47 1.20 构建应用程序 ........................................................................................................ 48 1.21 第三方包管理 ........................................................................................................ 49 1.22 Python 让人感到舒适 ............................................................................................ 50 2 运算符、表达式和数据操作 ................................................................. 51 2.1 字面量 ...................................................................................................................... 51 2.2 表达式与地址 .......................................................................................................... 52 2.3 标准运算符 .............................................................................................................. 53 2.4 就地赋值 .................................................................................................................. 55 2.5 对象比较 .................................................................................................................. 56 2.6 有序比较运算符 ...................................................................................................... 56 2.7 布尔表达式及真值 .................................................................................................. 57 2.8 条件表达式 .............................................................................................................. 58 2.9 迭代操作 .................................................................................................................. 59 2.10 序列操作 ................................................................................................................ 61 2.11 可变序列操作 ........................................................................................................ 63 2.12 Set 操作 .................................................................................................................. 64 2.13 映射操作 ................................................................................................................ 65 2.14 列表、Set 与字典解析式 ...................................................................................... 66 2.15 生成器表达式 ........................................................................................................ 68 2.16 特性(.)运算符 ................................................................................................... 70 2.17 函数调用()运算符 ................................................................................................. 70 2.18 求值顺序 ................................................................................................................ 70 2.19 最后的话:数据的秘密 ........................................................................................ 72 3 程序结构与控制流 ............................................................................ 73 3.1 程序结构与执行 ...................................................................................................... 73 3.2 条件执行 .................................................................................................................. 73 3.3 循环与迭代 .............................................................................................................. 74 3.4 异常 .......................................................................................................................... 78 3.4.1 异常层次 ..................................................................................................... 81 3.4.2 异常与控制流 ............................................................................................. 82 3.4.3 定义新异常 ................................................................................................. 83 3.4.4 链式异常 ..................................................................................................... 84 3.4.5 异常回溯 ..................................................................................................... 87 3.4.6 异常处理建议 ............................................................................................. 87 3.5 上下文管理器和 with 语句 ..................................................................................... 89 3.6 断言和__debug__ .................................................................................................... 91 3.7 最后的话 .................................................................................................................. 92 4 对象、类型和协议 ............................................................................ 93 4.1 核心概念 .................................................................................................................. 93 4.2 对象标识与类型 ...................................................................................................... 94 4.3 引用计数与垃圾回收 .............................................................................................. 95 4.4 引用与复制 .............................................................................................................. 97 4.5 对象的表示与打印 .................................................................................................. 98 4.6 头等对象 .................................................................................................................. 99 4.7 对可选的或缺失的数据使用 None ....................................................................... 101 4.8 对象协议及数据抽象 ............................................................................................ 101 4.9 对象协议 ................................................................................................................ 103 4.10 数字协议 .............................................................................................................. 104 4.11 比较协议 .............................................................................................................. 106 4.12 转换协议 .............................................................................................................. 108 4.13 容器协议 .............................................................................................................. 109 4.14 迭代协议 .............................................................................................................. 111 4.15 特性协议 .............................................................................................................. 112 4.16 函数协议 .............................................................................................................. 112 4.17 上下文管理器协议 .............................................................................................. 113 4.18 最后的话:关于 Pythonic ................................................................................... 113 5 函数 ........................................................................................... 115 5.1 函数定义 ................................................................................................................ 115 5.2 缺省参数 ................................................................................................................ 115 5.3 可变参数 ................................................................................................................ 116 5.4 关键字参数 ............................................................................................................ 117 5.5 可变关键字参数 .................................................................................................... 118 5.6 接受所有输入的函数 ............................................................................................ 118 5.7 位置限定(Positional-Only)参数 ....................................................................... 119 5.8 名称、文档字符串和类型提示 ............................................................................ 120 5.9 函数应用及参数传递 ............................................................................................ 121 5.10 返回值 .................................................................................................................. 123 5.11 错误处理 .............................................................................................................. 124 5.12 作用域规则 .......................................................................................................... 125 5.13 递归 ...................................................................................................................... 128 5.14 lambda 表达式 ..................................................................................................... 128 5.15 高阶函数 .............................................................................................................. 129 5.16 回调函数中的参数传递 ...................................................................................... 132 5.17 从回调函数返回结果 .......................................................................................... 135 5.18 装饰器 .................................................................................................................. 138 5.19 map、filter 和 reduce ........................................................................................... 141 5.20 函数自省、特性和签名 ...................................................................................... 143 5.21 环境检查 .............................................................................................................. 145 5.22 动态代码的执行和创建 ...................................................................................... 147 5.23 异步函数和 await ................................................................................................ 149 5.24 最后的话:函数与组合的思考 .......................................................................... 151 6 生成器 ........................................................................................ 153 6.1 生成器与 yield ....................................................................................................... 153 6.2 可重新启动的生成器 ............................................................................................ 156 6.3 生成器委托 ............................................................................................................ 156 6.4 生成器实践 ............................................................................................................ 158 6.5 增强型生成器和 yield 表达式 .............................................................................. 160 6.6 增强型生成器的应用 ............................................................................................ 162 6.7 生成器与 await 的联系 ......................................................................................... 165 6.8 最后的话:生成器简史及展望 ............................................................................ 166 7 类和面向对象编程 .......................................................................... 167 7.1 对象 ........................................................................................................................ 167 7.2 class 语句 ............................................................................................................... 168 7.3 实例 ........................................................................................................................ 169 7.4 特性访问 ................................................................................................................ 170 7.5 作用域规则 ............................................................................................................ 172 7.6 运算符重载及协议 ................................................................................................ 173 7.7 继承 ........................................................................................................................ 174 7.8 通过组合避免继承 ................................................................................................ 177 7.9 通过函数避免继承 ................................................................................................ 180 7.10 动态绑定和鸭子类型 .......................................................................................... 181 7.11 继承内置类型的危险性 ...................................................................................... 181 7.12 类变量和方法 ...................................................................................................... 183 7.13 静态方法 .............................................................................................................. 187 7.14 略谈设计模式 ...................................................................................................... 190 7.15 数据封装和私有特性 .......................................................................................... 190 7.16 类型提示 .............................................................................................................. 193 7.17 属性 ...................................................................................................................... 194 7.18 类型、接口和抽象基类 ...................................................................................... 197 7.19 多重继承、接口和 mixin .................................................................................... 201 7.20 基于类型的分派 .................................................................................................. 207 7.21 类装饰器 .............................................................................................................. 208 7.22 有监督的继承 ...................................................................................................... 211 7.23 对象生命周期与内存管理 .................................................................................. 213 7.24 弱引用 .................................................................................................................. 218 7.25 内部对象表示和特性绑定 .................................................................................. 220 7.26 代理、包装器和委托 .......................................................................................... 222 7.27 使用__slots__减少内存 ....................................................................................... 224 7.28 描述符 .................................................................................................................. 225 7.29 类定义过程 .......................................................................................................... 229 7.30 动态创建类 .......................................................................................................... 230 7.31 元类 ...................................................................................................................... 231 7.32 用于实例和类的内置对象 .................................................................................. 236 7.33 最后的话:保持简单 .......................................................................................... 237 8 模块和包 ..................................................................................... 239 8.1 模块和 import 语句 ............................................................................................... 239 8.2 模块缓存 ................................................................................................................ 241 8.3 从模块导入选定名称 ............................................................................................ 242 8.4 循环导入 ................................................................................................................ 244 8.5 模块的重新加载与卸载 ........................................................................................ 246 8.6 模块编译 ................................................................................................................ 247 8.7 模块搜索路径 ........................................................................................................ 248 8.8 作为主程序执行 .................................................................................................... 248 8.9 包 ............................................................................................................................ 249 8.10 包内导入 .............................................................................................................. 251 8.11 以脚本方式运行包的子模块 .............................................................................. 252 8.12 控制包命名空间 .................................................................................................. 253 8.13 控制包的导出 ...................................................................................................... 254 8.14 包数据 .................................................................................................................. 255 8.15 模块对象 .............................................................................................................. 256 8.16 部署 Python 包 ..................................................................................................... 257 8.17 倒数第二句话:从一个包开始 .......................................................................... 258 8.18 最后的话:保持简单 .......................................................................................... 259 9 输入与输出 .................................................................................. 261 9.1 数据表示 ................................................................................................................ 261 9.2 文本编码和解码 .................................................................................................... 262 9.3 文本和字节格式化 ................................................................................................ 264 9.4 读取命令行选项 .................................................................................................... 268 9.5 环境变量 ................................................................................................................ 270 9.6 文件和文件对象 .................................................................................................... 270 9.6.1 文件名称 ................................................................................................... 271 9.6.2 文件模式 ................................................................................................... 272 9.6.3 I/O 缓冲 ..................................................................................................... 272 9.6.4 文本模式编码 ........................................................................................... 273 9.6.5 文本模式行处理 ....................................................................................... 274 9.7 I/O 抽象层 .............................................................................................................. 274 9.7.1 文件方法 ................................................................................................... 275 9.8 标准输入、输出和错误 ........................................................................................ 277 9.9 目录 ........................................................................................................................ 278 9.10 print()函数 ............................................................................................................ 279 9.11 生成输出 .............................................................................................................. 279 9.12 消费输入 .............................................................................................................. 280 9.13 对象序列化 .......................................................................................................... 282 9.14 阻塞操作和并发 .................................................................................................. 283 9.14.1 非阻塞 I/O ............................................................................................... 284 9.14.2 I/O 轮询 ................................................................................................... 285 9.14.3 线程 ......................................................................................................... 285 9.14.4 使用 asyncio 并发执行 ........................................................................... 286 9.15 标准库模块 .......................................................................................................... 287 9.15.1 asyncio 模块 ............................................................................................ 287 9.15.2 binascii 模块 ............................................................................................ 288 9.15.3 cgi 模块 ................................................................................................... 289 9.15.4 configparser 模块 .................................................................................... 209 9.15.5 csv 模块 ................................................................................................... 209 9.15.6 errno 模块 ................................................................................................ 291 9.15.7 fcntl 模块 ................................................................................................. 292 9.15.8 hashlib 模块 ............................................................................................. 292 9.15.9 http 包 ...................................................................................................... 293 9.15.10 io 模块 ................................................................................................... 293 9.15.11 json 模块 ................................................................................................ 294 9.15.12 logging 模块 .......................................................................................... 294 9.15.13 os 模块................................................................................................... 295 9.15.14 os.path 模块 ........................................................................................... 295 9.15.15 pathlib 模块 ........................................................................................... 296 9.15.16 re 模块 ................................................................................................... 297 9.15.17 shutil 模块 ............................................................................................. 298 9.15.18 select 模块 ............................................................................................. 298 9.15.19 smtplib 模块 .......................................................................................... 299 9.15.20 socket 模块 ............................................................................................ 300 9.15.21 struct 模块 ............................................................................................. 302 9.15.22 subprocess 模块 ..................................................................................... 302 9.15.23 tempfile 模块 ......................................................................................... 303 9.15.24 textwrap 模块 ........................................................................................ 304 9.15.25 threading 模块 ....................................................................................... 305 9.15.26 time 模块 ............................................................................................... 307 9.15.27 urllib 包 ................................................................................................. 307 9.15.28 unicodedata 模块 ................................................................................... 308 9.15.29 xml 包 .................................................................................................... 309 9.16 最后的话 .............................................................................................................. 310 10 内置函数和标准库 ........................................................................ 311 10.1 内置函数 .............................................................................................................. 311 10.2 内置异常 .............................................................................................................. 328 10.2.1 异常基类 ................................................................................................. 328 10.2.2 异常特性 ................................................................................................. 328 10.2.3 预定义异常类 ......................................................................................... 329 10.3 标准库 .................................................................................................................. 332 10.3.1 collections 模块 ....................................................................................... 332 10.3.2 datetime 模块 .......................................................................................... 332 10.3.3 itertools 模块 ........................................................................................... 332 10.3.4 inspect 模块 ............................................................................................. 332 10.3.5 math 模块 ................................................................................................ 332 10.3.6 os 模块 .................................................................................................... 333 10.3.7 random 模块 ............................................................................................ 333 10.3.8 re 模块 ..................................................................................................... 333 10.3.9 shutil 模块 ............................................................................................... 333 10.3.10 statistics 模块 ........................................................................................ 333 10.3.11 sys 模块 ................................................................................................. 333 10.3.12 time 模块 ............................................................................................... 333 10.3.13 turtle 模块 .............................................................................................. 333 10.3.14 unittest 模块 .......................................................................................... 333 10.4 最后的话:使用内置功能 .................................................................................. 334
你还可能感兴趣
我要评论
|