本书由资深Python专家亲自执笔,Python语言的核心开发人员作序推荐,权威性毋庸置疑。
对于程序员而言,标准库与语言本身同样重要,它好比一个百宝箱,能为各种常见的任务提供完美的解决方案,所以本书是所有Python程序员都必备的工具书!本书以案例驱动的方式讲解了标准库中一百多个模块的使用方法(如何工作)和工作原理(为什么要这样工作),比标准库的官方文档更容易理解(一个简单的示例比一份手册文档更有帮助),为Python程序员熟练掌握和使用这些模块提供了绝佳指导。
全书一共19章,系统而全面地对Python标准库中的一百多个模块进行了生动的讲解。这些模块主要包括:文本处理工具模块、与数据结构相关的模块、与算法有关的模块、管理日期和时间值的模块、用于数学计算的模块、管理文件系统的模块、用于数据存储与交换的模块、用于数据压缩与归档的模块、用于加密的模块、与进程和线程相关的模块、与网络通信和Email相关的模块、构建模块、支持处理多种自然语言和文化设置的模块、开发工具模块、与运行时特性相关的模块,等等。
译者序
序
前言
第1章 文本1
1.1 string—文本常量和模板1
1.1.1 函数1
1.1.2 模板2
1.1.3 高级模板4
1.2 textwrap—格式化文本段落6
1.2.1 示例数据6
1.2.2 填充段落6
1.2.3 去除现有缩进7
1.2.4 结合dedent和fill7
1.2.5 悬挂缩进8
1.3 re—正则表达式9
1.3.1 查找文本中的模式9
1.3.2 编译表达式10
1.3.3 多重匹配11
1.3.4 模式语法12
1.3.5 限制搜索22
1.3.6 用组解析匹配23
1.3.7 搜索选项28
1.3.8 前向或后向36
1.3.9 自引用表达式40
1.3.10 用模式修改字符串44
1.3.11 利用模式拆分46
1.4 difflib—比较序列49
1.4.1 比较文本体49
1.4.2 无用数据51
1.4.3 比较任意类型53
第2章 数据结构55
2.1 collections—容器数据类型56
2.1.1 Counter56
2.1.2 defaultdict59
2.1.3 deque59
2.1.4 namedtuple63
2.1.5 OrderedDict65
2.2 array—固定类型数据序列66
2.2.1 初始化67
2.2.2 处理数组67
2.2.3 数组与文件68
2.2.4 候选字节顺序68
2.3 heapq—堆排序算法69
2.3.1 示例数据70
2.3.2 创建堆70
2.3.3 访问堆的内容72
2.3.4 堆的数据极值73
2.4 bisect—维护有序列表74
2.4.1 有序插入74
2.4.2 处理重复75
2.5 Queue—线程安全的FIFO实现76
2.5.1 基本FIFO队列77
2.5.2 LIFO队列77
2.5.3 优先队列78
2.5.4 构建一个多线程播客客户程序79
2.6 struct—二进制数据结构81
2.6.1 函数与Struct类81
2.6.2 打包和解包81
2.6.3 字节序82
2.6.4 缓冲区84
2.7 weakref—对象的非永久引用85
2.7.1 引用85
2.7.2 引用回调86
2.7.3 代理87
2.7.4 循环引用87
2.7.5 缓存对象92
2.8 copy—复制对象94
2.8.1 浅副本94
2.8.2 深副本95
2.8.3 定制复制行为96
2.8.4 深副本中的递归96
2.9 pprint—美观打印数据结构98
2.9.1 打印99
2.9.2 格式化99
2.9.3 任意类100
2.9.4 递归101
2.9.5 限制嵌套输出101
2.9.6 控制输出宽度101
第3章 算法103
3.1 functools—管理函数的工具103
3.1.1 修饰符103
3.1.2 比较111
3.2 itertools—迭代器函数114
3.2.1 合并和分解迭代器114
3.2.2 转换输入116
3.2.3 生成新值117
3.2.4 过滤119
3.2.5 数据分组121
3.3 operator—内置操作符的函数接口123
3.3.1 逻辑操作123
3.3.2 比较操作符124
3.3.3 算术操作符124
3.3.4 序列操作符126
3.3.5 原地操作符127
3.3.6 属性和元素“获取方法”128
3.3.7 结合操作符和定制类129
3.3.8 类型检查130
3.4 contextlib—上下文管理器工具131
3.4.1 上下文管理器API131
3.4.2 从生成器到上下文管理器134
3.4.3 嵌套上下文135
3.4.4 关闭打开的句柄136
第4章 日期和时间138
4.1 time—时钟时间138
4.1.1 壁挂钟时间138
4.1.2 处理器时钟时间139
4.1.3 时间组成140
4.1.4 处理时区141
4.1.5 解析和格式化时间143
4.2 datetime—日期和时间值管理144
4.2.1 时间144
4.2.2 日期145
4.2.3 timedelta147
4.2.4 日期算术运算148
4.2.5 比较值149
4.2.6 结合日期和时间150
4.2.7 格式化和解析151
4.2.8 时区151
4.3 calendar—处理日期152
4.3.1 格式化示例152
4.3.2 计算日期155
第5章 数学计算157
5.1 decimal—定点数和浮点数的数学运算157
5.1.1 Decimal157
5.1.2 算术运算158
5.1.3 特殊值160
5.1.4 上下文160
5.2 fractions—有理数165
5.2.1 创建 Fraction实例165
5.2.2 算术运算167
5.2.3 近似值168
5.3 random—伪随机数生成器168
5.3.1 生成随机数168
5.3.2 指定种子169
5.3.3 保存状态170
5.3.4 随机整数171
5.3.5 选择随机元素172
5.3.6 排列172
5.3.7 采样174
5.3.8 多个并发生成器175
5.3.9 SystemRandom176
5.3.10 非均匀分布177
5.4 math—数学函数178
5.4.1 特殊常量178
5.4.2 测试异常值179
5.4.3 转换为整数180
5.4.4 其他表示181
5.4.5 正号和负号183
5.4.6 常用计算184
5.4.7 指数和对数186
5.4.8 角190
5.4.9 三角函数191
5.4.10 双曲函数194
5.4.11 特殊函数195
第6章 文件系统197
6.1 os.path—平台独立的文件名管理198
6.1.1 解析路径198
6.1.2 建立路径200
6.1.3 规范化路径201
6.1.4 文件时间202
6.1.5 测试文件203
6.1.6 遍历一个目录树204
6.2 glob—文件名模式匹配205
6.2.1 示例数据205
6.2.2 通配符206
6.2.3 单字符通配符207
6.2.4 字符区间207
6.3 linecache—高效读取文本文件208
6.3.1 测试数据208
6.3.2 读取特定行209
6.3.3 处理空行209
6.3.4 错误处理210
6.3.5 读取Python源文件210
6.4 tempfile—临时文件系统对象211
6.4.1 临时文件211
6.4.2 命名文件213
6.4.3 临时目录214
6.4.4 预测名214
6.4.5 临时文件位置215
6.5 shutil—高级文件操作216
6.5.1 复制文件216
6.5.2 复制文件元数据218
6.5.3 处理目录树220
6.6 mmap—内存映射文件222
6.6.1 读文件223
6.6.2 写文件223
6.6.3 正则表达式225
6.7 codecs—字符串编码和解码226
6.7.1 Unicode入门226
6.7.2 处理文件228
6.7.3 字节序230
6.7.4 错误处理232
6.7.5 标准输入和输出流235
6.7.6 编码转换238
6.7.7 非Unicode编码239
6.7.8 增量编码240
6.7.9 Unicode数据和网络通信242
6.7.10 定义定制编码245
6.8 StringIO—提供类文件API的文本缓冲区251
6.9 fnmatch—UNIX式glob模式匹配252
6.9.1 简单匹配252
6.9.2 过滤253
6.9.3 转换模式254
6.10 dircache—缓存目录列表254
6.10.1 列出目录内容255
6.10.2 标注列表256
6.11 filecmp—比较文件257
6.11.1 示例数据258
6.11.2 比较文件260
6.11.3 比较目录261
6.11.4 程序中使用差异262
第7章 数据持久存储与交换267
7.1 pickle—对象串行化268
7.1.1 导入268
7.1.2 编码和解码字符串数据268
7.1.3 处理流269
7.1.4 重构对象的问题271
7.1.5 不可pickle的对象272
7.1.6 循环引用273
7.2 shelve—对象持久存储275
7.2.1 创建一个新shelf275
7.2.2 写回276
7.2.3 特定shelf类型277
7.3 anydbm—DBM数据库278
7.3.1 数据库类型278
7.3.2 创建一个新数据库279
7.3.3 打开一个现有数据库279
7.3.4 错误情况280
7.4 whichdb—识别DBM数据库格式281
7.5 sqlite3—嵌入式关系数据库281
7.5.1 创建数据库282
7.5.2 获取数据285
7.5.3 查询元数据286
7.5.4 行对象287
7.5.5 查询中使用变量288
7.5.6 批量加载290
7.5.7 定义新列类型291
7.5.8 确定列类型294
7.5.9 事务296
7.5.10 隔离级别298
7.5.11 内存中数据库302
7.5.12 导出数据库内容302
7.5.13 SQL中使用Python函数304
7.5.14 定制聚集306
7.5.15 定制排序307
7.5.16 线程和连接共享308
7.5.17 限制对数据的访问309
7.6 xml.etree.ElementTree—XML操纵API311
7.6.1 解析XML文档312
7.6.2 遍历解析树313
7.6.3 查找文档中的节点314
7.6.4 解析节点属性315
7.6.5 解析时监视事件317
7.6.6 创建一个定制树构造器319
7.6.7 解析串321
7.6.8 用元素节点构造文档322
7.6.9 美观打印XML323
7.6.10 设置元素属性325
7.6.11 由节点列表构造树327
7.6.12 将XML串行化至一个流329
7.7 csv—逗号分隔值文件331
7.7.1 读文件332
7.7.2 写文件332
7.7.3 方言334
7.7.4 使用字段名338
第8章 数据压缩与归档340
8.1 zlib—GNU zlib压缩340
8.1.1 处理内存中数据340
8.1.2 增量压缩与解压缩341
8.1.3 混合内容流342
8.1.4 校验和343
8.1.5 压缩网络数据343
8.2 gzip—读写GNU Zip文件347
8.2.1 写压缩文件348
8.2.2 读压缩数据349
8.2.3 处理流350
8.3 bz2—bzip2压缩352
8.3.1 内存中一次性操作352
8.3.2 增量压缩和解压缩354
8.3.3 混合内容流354
8.3.4 写压缩文件355
8.3.5 读压缩文件357
8.3.6 压缩网络数据358
8.4 tarfile—Tar归档访问362
8.4.1 测试Tar文件362
8.4.2 从归档文件读取元数据362
8.4.3 从归档抽取文件364
8.4.4 创建新归档365
8.4.5 使用候选归档成员名366
8.4.6 从非文件源写数据366
8.4.7 追加到归档367
8.4.8 处理压缩归档368
8.5 zipfile—ZIP归档访问369
8.5.1 测试ZIP文件369
8.5.2 从归档读取元数据369
8.5.3 从归档抽取归档文件371
8.5.4 创建新归档371
8.5.5 使用候选归档成员名373
8.5.6 从非文件源写数据373
8.5.7 利用ZipInfo实例写374
8.5.8 追加到文件375
8.5.9 Python ZIP归档376
8.5.10 限制377
第9章 加密378
9.1 hashlib—密码散列378
9.1.1 示例数据378
9.1.2 MD5示例379
9.1.3 SHA1示例379
9.1.4 按名创建散列379
9.1.5 增量更新380
9.2 hmac—密码消息签名与验证381
9.2.1 消息签名381
9.2.2 SHA与MD5382
9.2.3 二进制摘要383
9.2.4 消息签名的应用383
第10章 进程与线程387
10.1 subprocess—创建附加进程387
10.1.1 运行外部命令388
10.1.2 直接处理管道391
10.1.3 连接管道段393
10.1.4 与其他命令交互394
10.1.5 进程间传递信号396
10.2 signal—异步系统事件400
10.2.1 接收信号400
10.2.2 获取注册的处理程序401
10.2.3 发送信号402
10.2.4 闹铃403
10.2.5 忽略信号403
10.2.6 信号和线程404
10.3 threading—管理并发操作406
10.3.1 Thread对象406
10.3.2 确定当前线程407
10.3.3 守护与非守护线程409
10.3.4 列举所有线程411
10.3.5 派生线程412
10.3.6 定时器线程414
10.3.7 线程间传送信号415
10.3.8 控制资源访问416
10.3.9 同步线程421
10.3.10 限制资源的并发访问422
10.3.11 线程特定数据423
10.4 multiprocessing—像线程一样管理进程425
10.4.1 multiprocessing基础426
10.4.2 可导入的目标函数427
10.4.3 确定当前进程428
10.4.4 守护进程428
10.4.5 等待进程430
10.4.6 终止进程431
10.4.7 进程退出状态432
10.4.8 日志434
10.4.9 派生进程435
10.4.10 向进程传递消息435
10.4.11 进程间信号传输438
10.4.12 控制资源访问439
10.4.13 同步操作440
10.4.14 控制资源的并发访问441
10.4.15 管理共享状态443
10.4.16 共享命名空间444
10.4.17 进程池445
10.4.18 实现MapReduce447
第11章 网络通信452
11.1 socket—网络通信452
11.1.1 寻址、协议簇和套接字类型452
11.1.2 TCP/IP客户和服务器460
11.1.3 用户数据报客户和服务器467
11.1.4 UNIX域套接字469
11.1.5 组播473
11.1.6 发送二进制数据476
11.1.7 非阻塞通信和超时478
11.2 select—高效等待I/O 479
11.2.1 使用select()479
11.2.2 有超时的非阻塞I/O484
11.2.3 使用 poll()486
11.2.4 平台特定选项490
11.3 SocketServer—创建网络服务器491
11.3.1 服务器类型491
11.3.2 服务器对象491
11.3.3 实现服务器491
11.3.4 请求处理器492
11.3.5 回应示例492
11.3.6 线程和进程497
11.4 asyncore—异步I/O499
11.4.1 服务器500
11.4.2 客户501
11.4.3 事件循环503
11.4.4 处理其他事件循环505
11.4.5 处理文件507
11.5 asynchat—异步协议处理器508
11.5.1 消息终止符508
11.5.2 服务器和处理器508
11.5.3 客户511
11.5.4 集成512
第12章 Internet514
12.1 urlparse—分解URL514
12.1.1 解析515
12.1.2 反解析517
12.1.3 连接518
12.2 BaseHTTPServer—实现Web服务器的基类519
12.2.1 HTTP GET519
12.2.2 HTTP POST521
12.2.3 线程与进程522
12.2.4 处理错误523
12.2.5 设置首部524
12.3 urllib—网络资源访问525
12.3.1 利用缓存实现简单获取526
12.3.2 参数编码527
12.3.3 路径与URL529
12.4 urllib2—网络资源访问530
12.4.1 HTTP GET530
12.4.2 参数编码532
12.4.3 HTTP POST533
12.4.4 增加发出首部534
12.4.5 从请求提交表单数据535
12.4.6 上传文件536
12.4.7 创建定制协议处理器539
12.5 Base64—用ASCII编码二进制数据541
12.5.1 Base64编码541
12.5.2 Base64解码542
12.5.3 URL安全的变种543
12.5.4 其他编码543
12.6 robotparser—网络蜘蛛访问控制544
12.6.1 robots.txt545
12.6.2 测试访问权限545
12.6.3 长久蜘蛛546
12.7 Cookie—HTTP Cookie547
12.7.1 创建和设置Cookie547
12.7.2 Morsel548
12.7.3 编码值550
12.7.4 接收和解析Cookie首部550
12.7.5 候选输出格式551
12.7.6 废弃的类552
12.8 uuid—全局惟一标识符552
12.8.1 UUID 1—IEEE 802 MAC地址552
12.8.2 UUID 3和5—基于名字的值554
12.8.3 UUID 4—随机值556
12.8.4 处理UUID对象556
12.9 json—JavaScript对象记法557
12.9.1 编码和解码简单数据类型557
12.9.2 优质输出和紧凑输出558
12.9.3 编码字典560
12.9.4 处理定制类型561
12.9.5 编码器和解码器类563
12.9.6 处理流和文件565
12.9.7 混合数据流566
12.10 xmlrpclib—XML-RPC的客户端库567
12.10.1 连接服务器568
12.10.2 数据类型570
12.10.3 传递对象573
12.10.4 二进制数据573
12.10.5 异常处理575
12.10.6 将调用结合在一个消息中575
12.11 SimpleXMLRPCServer—一个XML-RPC服务器577
12.11.1 一个简单的服务器577
12.11.2 备用API名578
12.11.3 加点的API名 579
12.11.4 任意API名580
12.11.5 公布对象的方法581
12.11.6 分派调用583
12.11.7 自省API584
第13章 Email587
13.1 smtplib—简单邮件传输协议客户587
13.1.1 发送Email消息587
13.1.2 认证和加密589
13.1.3 验证Email地址592
13.2 smtpd—示例邮件服务器593
13.2.1 邮件服务器基类593
13.2.2 调试服务器595
13.2.3 代理服务器596
13.3 imaplib—IMAP4客户库596
13.3.1 变种597
13.3.2 连接到服务器597
13.3.3 示例配置598
13.3.4 列出邮箱599
13.3.5 邮箱状态601
13.3.6 选择邮箱602
13.3.7 搜索消息603
13.3.8 搜索规则604
13.3.9 获取消息605
13.3.10 完整消息608
13.3.11 上传消息609
13.3.12 移动和复制消息611
13.3.13 删除消息612
13.4 mailbox—管理邮件归档614
13.4.1 mbox614
13.4.2 Maildir616
13.4.3 其他格式622
第14章 应用构建模块623
14.1 getopt—命令行选项解析624
14.1.1 函数参数624
14.1.2 短格式选项624
14.1.3 长格式选项625
14.1.4 一个完整的例子625
14.1.5 缩写长格式选项627
14.1.6 GNU选项解析627
14.1.7 结束参数处理629
14.2 optparse—命令行选项解析器629
14.2.1 创建OptionParser629
14.2.2 短格式和长格式选项630
14.2.3 用getopt比较631
14.2.4 选项值632
14.2.5 选项动作635
14.2.6 帮助消息639
14.3 argparse—命令行选项和参数解析644
14.3.1 与optparse比较644
14.3.2 建立解析器644
14.3.3 定义参数644
14.3.4 解析命令行645
14.3.5 简单示例645
14.3.6 自动生成的选项652
14.3.7 解析器组织653
14.3.8 高级参数处理659
14.4 readline—GNU Readline库666
14.4.1 配置667
14.4.2 完成文本668
14.4.3 访问完成缓冲区670
14.4.4 输入历史674
14.4.5 hook676
14.5 getpass—安全密码提示677
14.5.1 示例677
14.5.2 无终端使用getpass678
14.6 cmd—面向行的命令处理器679
14.6.1 处理命令680
14.6.2 命令参数681
14.6.3 现场帮助682
14.6.4 自动完成683
14.6.5 覆盖基类方法684
14.6.6 通过属性配置Cmd 686
14.6.7 运行shell命令687
14.6.8 候选输入688
14.6.9 sys.argv的命令689
14.7 shlex—解析shell语法690
14.7.1 加引号的字符串691
14.7.2 嵌入注释692
14.7.3 分解693
14.7.4 包含其他Token源693
14.7.5 控制解析器694
14.7.6 错误处理696
14.7.7 POSIX与非POSIX解析697
14.8 ConfigParser—处理配置文件698
14.8.1 配置文件格式699
14.8.2 读取配置文件699
14.8.3 访问配置设置701
14.8.4 修改设置705
14.8.5 保存配置文件706
14.8.6 选项搜索路径707
14.8.7 用接合合并值709
14.9 日志—报告状态、错误和信息消息712
14.9.1 应用与库中的日志记录712
14.9.2 记入文件712
14.9.3 旋转日志文件713
14.9.4 详细级别714
14.9.5 命名日志记录器实例715
14.10 fileinput—命令行过滤器框架716
14.10.1 M3U文件转换为RSS716
14.10.2 进度元数据718
14.10.3 原地过滤719
14.11 atexit—程序关闭回调721
14.11.1 示例721
14.11.2 什么情况下不调用atexit函数722
14.11.3 处理异常724
14.12 sched—定时事件调度器725
14.12.1 有延迟地运行事件725
14.12.2 重叠事件726
14.12.3 事件优先级727
14.12.4 取消事件727
第15章 国际化和本地化729
15.1 gettext—消息编目729
15.1.1 转换工作流概述729
15.1.2 由源代码创建消息编目730
15.1.3 运行时查找消息编目732
15.1.4 复数值733
15.1.5 应用与模块本地化735
15.1.6 切换转换736
15.2 locale—文化本地化API736
15.2.1 探查当前本地化环境737
15.2.2 货币742
15.2.3 格式化数字742
15.2.4 解析数字743
15.2.5 日期和时间744
第16章 开发工具745
16.1 pydoc—模块的联机帮助746
16.1.1 纯文本帮助746
16.1.2 HTML帮助746
16.1.3 交互式帮助746
16.2 doctest—通过文档完成测试747
16.2.1 开始747
16.2.2 处理不可预测的输出748
16.2.3 Traceback752
16.2.4 避开空白符753
16.2.5 测试位置758
16.2.6 外部文档761
16.2.7 运行测试763
16.2.8 测试上下文766
16.3 unittest—自动测试框架769
16.3.1 基本测试结构769
16.3.2 运行测试770
16.3.3 测试结果770
16.3.4 断言真值772
16.3.5 测试相等性773
16.3.6 近似相等774
16.3.7 测试异常775
16.3.8 测试固件775
16.3.9 测试套件776
16.4 traceback—异常和栈轨迹777
16.4.1 支持函数777
16.4.2 处理异常777
16.4.3 处理栈780
16.5 cgitb—详细的traceback报告783
16.5.1 标准traceback转储783
16.5.2 启用详细traceback783
16.5.3 traceback中的局部变量785
16.5.4 异常属性787
16.5.5 HTML输出788
16.5.6 记录traceback789
16.6 pdb—交互式调试工具791
16.6.1 启动调试工具791
16.6.2 控制调试工具794
16.6.3 断点803
16.6.4 改变执行流813
16.6.5 用别名定制调试工具819
16.6.6 保存配置设置821
16.7 trace—执行程序流822
16.7.1 示例程序822
16.7.2 跟踪执行822
16.7.3 代码覆盖823
16.7.4 调用关系825
16.7.5 编程接口826
16.7.6 保存结果数据828
16.7.7 选项829
16.8 profile和pstats—性能分析830
16.8.1 运行性能分析工具830
16.8.2 在上下文中运行832
16.8.3 pstats:保存和处理统计信息833
16.8.4 限制报告内容835
16.8.5 调用图836
16.9 timeit—测量小段Python代码的执行时间837
16.9.1 模块内容837
16.9.2 基本示例837
16.9.3 值存储在字典中838
16.9.4 从命令行执行840
16.10 compileall—字节编译源文件841
16.10.1 编译一个目录842
16.10.2 编译sys.path842
16.10.3 从命令行执行843
16.11 pyclbr—类浏览器843
16.11.1 扫描类845
16.11.2 扫描函数846
第17章 运行时特性847
17.1 site—全站点配置847
17.1.1 导入路径847
17.1.2 用户目录849
17.1.3 路径配置文件850
17.1.4 定制站点配置852
17.1.5 定制用户配置853
17.1.6 禁用site模块854
17.2 sys—系统特定的配置854
17.2.1 解释器设置855
17.2.2 运行时环境860
17.2.3 内存管理和限制862
17.2.4 异常处理867
17.2.5 底层线程支持869
17.2.6 模块和导入875
17.2.7 跟踪程序运行情况892
17.3 os—可移植访问操作系统特定特性898
17.3.1 进程所有者898
17.3.2 进程环境900
17.3.3 进程工作目录901
17.3.4 管道901
17.3.5 文件描述符905
17.3.6 文件系统权限905
17.3.7 目录906
17.3.8 符号链接907
17.3.9 遍历目录树907
17.3.10 运行外部命令909
17.3.11 用os.fork()创建进程910
17.3.12 等待子进程911
17.3.13 Spawn913
17.3.14 文件系统权限913
17.4 platform—系统版本信息914
17.4.1 解释器915
17.4.2 平台916
17.4.3 操作系统和硬件信息916
17.4.4 可执行程序体系结构918
17.5 resource—系统资源管理918
17.5.1 当前使用情况919
17.5.2 资源限制919
17.6 gc—垃圾回收器922
17.6.1 跟踪引用922
17.6.2 强制垃圾回收925
17.6.3 查找无法收集的对象引用928
17.6.4 回收阈限和代931
17.6.5 调试933
17.7 sysconfig—解释器编译时配置940
17.7.1 配置变量940
17.7.2 安装路径942
17.7.3 Python版本和平台945
第18章 语言工具947
18.1 warnings—非致命警告947
18.1.1 分类和过滤948
18.1.2 生成警告948
18.1.3 用模式过滤949
18.1.4 重复的警告951
18.1.5 候选消息传送函数951
18.1.6 格式化952
18.1.7 警告中的栈层次952
18.2 abc—抽象基类953
18.2.1 为什么使用抽象基类953
18.2.2 抽象基类如何工作954
18.2.3 注册一个具体类954
18.2.4 通过派生实现955
18.2.5 abc中的具体方法956
18.2.6 抽象属性957
18.3 dis—Python字节码反汇编工具960
18.3.1 基本反汇编961
18.3.2 反汇编函数961
18.3.3 类963
18.3.4 使用反汇编进行调试963
18.3.5 循环的性能分析965
18.3.6 编译器优化970
18.4 inspect—检查现场对象972
18.4.1 示例模块972
18.4.2 模块信息973
18.4.3 检查模块974
18.4.4 检查类975
18.4.5 文档串 976
18.4.6 获取源代码977
18.4.7 方法和函数参数979
18.4.8 类层次结构980
18.4.9 方法解析顺序981
18.4.10 栈与帧982
18.5 exceptions—内置异常类984
18.5.1 基类985
18.5.2 产生的异常985
18.5.3 警告类型998
第19章 模块与包999
19.1 imp—Python的导入机制999
19.1.1 示例包999
19.1.2 模块类型999
19.1.3 查找模块1000
19.1.4 加载模块1001
19.2 zipimport—从ZIP归档加载Python代码1003
19.2.1 示例1003
19.2.2 查找模块1004
19.2.3 访问代码1004
19.2.4 源代码1005
19.2.5 包1006
19.2.6 数据1006
19.3 pkgutil—包工具1008
19.3.1 包导入路径1008
19.3.2 包的开发版本1010
19.3.3 用PKG文件管理路径1011
19.3.4 嵌套包1013
19.3.5 包数据1014
《代码精进之路:从码农到工匠》内容简介:这是一本为专业程序员而写的书,写好代码、追求卓越和工匠精神是每个程序员都应该具备的
《谈医说病》内容简介:渡边淳一以对谈方式,与日本医学专家探讨不孕症、腰膝痛、眼疾、流感、类风湿病、花粉症、糖尿病、特应性皮
《历史的六个面孔》内容简介:本书介绍了春秋时的管仲、战国时的商鞅、西汉时的桑弘羊、唐代的刘晏、宋代的王安石、明代的张居正这
内容简介《50双改变世界的鞋子》讲述了:鞋子是在现代社会里,不仅让你的双脚温暖而舒适,还传达着穿着者信息。它,无疑是最能蛊
《我也有过小时候》内容简介:在中国,任溶溶先生是一个无论大人还是孩子都喜欢的作者,他的许多作品包括译作滋养了几代人,任老先
中国电信北京研究院宽带及互联网创新中心云计算团队总监。毕业于哈尔滨工程大学,获得信息与通信工程专业硕士学位。2003年进入中
客觀的結構式臨床測驗(ObjectiveStructuredClinicalExamination,OSCE)是評估臨床能力的方式,藉由模擬臨床情境配合臨床檢驗...
人工智能导论-(第4版) 本书特色 《人工智能导论(第4版)》是一本基础性强、可读性好、适合讲授的人工智能教材。读者通过学习《人工智能导论(第4版)》,能够掌握...
《精彩江苏·画派系列:金陵画派》内容简介:金陵画派是明末清初活动于金陵地区以金陵八家为代表的画家群体的总称。这些画家大多具
Theinterplaybetweenoptimizationandmachinelearningisoneofthemostimportantdevelopm...
Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python可以用于很多的领域,从科学计算到游戏开发。《Python编
《社群营销与运营实战手册》内容简介:社群经济的崛起极大地改变了现有的商业模式,微商、“网红”、社交电商等新兴模式使社群的地
《因为尽情,所以伤心:纳兰容若传》内容简介:一部真正的纳兰容若人物大传! 一代浊世佳公子的人生传奇! 纳兰诗词赏析的书常有,
肓信号处理是现代数学信号处理、计算智能学近年来迅速发展的重要方向。在电子信息、通信、生物医学、图像增强、雷达、地球物理信
在线广告:互联网广告系统的架构及算法 本书特色 在线广告是一个多学科交融的领域,本书力求系统地讲解在线广告的架构和算法,让读者对在线广告有一个整体的认识。全书共...
《中国近代铁路事业管理研究》内容简介:本书是台湾学者张瑞德早年的著作,曾由台北“中研院”近代史研究所于1991年出版,列入该所
《数字抑郁时代》内容简介:你不经意间养成的习惯,背后都是高科技的老谋深算 慕尼黑大学心理学教授教你认清套路,看穿隐藏在数字技
《视觉链》内容简介:互联网行业是一个发展非常快的行业,也是一个充满创新的行业,技术发展快,商业模式层出不穷,用户的需求也在
非常网管WindowsServer2003服务器架设实例详解(修订版) 本书特色 《非常网管:Windows Server 2003服务器架设实例详解(修订版)...
《人心红利2:突破流量瓶颈的增长方法论》内容简介:品牌大爆炸时代,消费品市场的老将们与大批国货新锐同台竞技,对消费者的争夺也