譯者序
序
前言
第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
· · · · · · (
收起)