Python高級編程[清華大學出版社出版的圖書]

Python高級編程[清華大學出版社出版的圖書]
Python高級編程[清華大學出版社出版的圖書]
更多義項 ▼ 收起列表 ▲

《Python高級編程》作者是[美] Luke Sneeringer 著 宋沄劍 劉磊 譯,由清華大學出版社出版

內容簡介

學習編寫更出色的代碼,讓工作流程更加平滑  Python是一門強大且快速增長的動態程式語言。雖然它提供了很多用於編寫高級、簡潔、可維護代碼的工具,但是對於這些技術卻一直沒有一個清晰的解釋。《Python高級編程》為介紹所有Python功能提供了一個入口。每個概念的完整闡述、關於應用程式的討論、動手指南都將教會你設計更好的架構,以及編寫使得應用程式更加健壯與高效的代碼。

目錄

第Ⅰ部分 函 數

第1章 裝飾器 3

1.1 理解裝飾器 3

1.2 裝飾器語法 4

1.3 在何處使用裝飾器 6

1.4 編寫裝飾器的理由 6

1.5 編寫裝飾器的時機 7

1.5.1 附加功能 7

1.5.2 數據的清理或添加 7

1.5.3 函式註冊 7

1.6 編寫裝飾器 7

1.6.1 初始示例:函式註冊表 8

1.6.2 執行時封裝代碼 9

1.6.3 裝飾器參數 16

1.7 裝飾類 20

1.8 類型轉換 23

1.9 小結 25

第2章 上下文管理器 27

2.1 上下文管理器的定義 27

2.2 上下文管理器的語法 28

2.2.1 with語句 28

2.2.2 enter和exit方法 28

2.2.3 異常處理 29

2.3 何時應該編寫上下文管理器 30

2.3.1 資源清理 30

2.3.2 避免重複 31

2.4 更簡單的語法 38

2.5 小結 39

第3章 生成器 41

3.1理解生成器41

3.2理解生成器語法41

3.2.1next函式43

3.2.2StopIteration異常45

3.3生成器之間的互動47

3.4疊代對象與疊代器49

3.5標準庫中的生成器50

3.5.1range50

3.5.2dict.items及其家族50

3.5.3zip51

3.5.4map52

3.5.5檔案對象52

3.6何時編寫生成器53

3.6.1分塊訪問數據53

3.6.2分塊計算數據54

3.7何時使用生成器單例模式54

3.8生成器內部的生成器55

3.9 小結56

第Ⅱ部分類

第4章 魔術方法59

4.1魔術方法語法59

4.2可用的魔術方法60

4.2.1創建與銷毀61

4.2.2類型轉換63

4.2.3比較65

4.3其他魔術方法75

4.4小結76

第5章 元類77

5.1類與對象77

5.1.1直接使用type78

5.1.2type鏈80

5.1.3type的角色80

5.2編寫元類81

5.2.1__new__方法81

5.2.2__new__與__init__方法81

5.2.3元類示例82

5.2.4元類繼承82

5.3使用元類84

5.3.1Python385

5.3.2Python285

5.3.3需要跨版本執行的代碼怎么辦85

5.3.4跨版本兼容性在何時重要86

5.4何時使用元類87

5.4.1說明性類聲明87

5.4.2類驗證88

5.4.3非繼承屬性90

5.5顯式選擇的問題91

5.6meta-coding92

5.7小結94

第6章 類工廠95

6.1類型回顧95

6.2理解類工廠函式96

6.3決定何時應該編寫類工廠98

6.3.1運行時屬性98

6.3.2避免類屬性一致性問題102

6.3.3關於單例模式問題的解答105

6.4小結107

第7章 抽象基類109

7.1使用抽象基類109

7.2聲明虛擬子類110

7.2.1聲明虛擬子類的原因111

7.2.2使用register作為裝飾器113

7.2.3__subclasshook__113

7.3聲明協定115

7.3.1其他現有的方法115

7.3.2抽象基類的價值118

7.3.3抽象屬性120

7.3.4抽象類或靜態方法121

7.4內置抽象基類122

7.4.1隻包含一個方法的抽象基類122

7.4.2可供集合使用的抽象基類123

7.4.3額外的抽象基類124

7.5小結124

第Ⅲ部分數據

第8章 字元串與Unicode127

8.1文本字元串與位元組字元串127

8.2包含非ASCII字元的字元串132

8.2.1觀察區別132

8.2.2Unicode是ASCII的超集133

8.3其他編碼133

8.4讀取檔案135

8.4.1Python3135

8.4.2Python2137

8.4.3讀取其他源137

8.4.4指定Python檔案編碼137

8.5嚴格編碼139

8.5.1不觸發錯誤139

8.5.2註冊錯誤處理程式140

8.6小結141

第9章 正則表達式143

9.1使用正則表達式的原因143

9.2Python中的正則表達式144

9.2.1原始字元串144

9.2.2match對象145

9.2.3找到多個匹配145

9.3基本正則表達式146

9.3.1字元組146

9.3.2可選字元150

9.3.3重複151

9.4分組152

9.4.1零分組154

9.4.2命名分組155

9.4.3引用已經存在的分組156

9.5先行斷言157

9.6標記158

9.6.1不區分大小寫158

9.6.2ASCII與Unicode159

9.6.3點匹配換行符159

9.6.4多行模式159

9.6.5詳細模式160

9.6.6調試模式160

9.6.7使用多個標記160

9.6.8內聯標記160

9.7替換161

9.8已編譯的正則表達式162

9.9小結163

第Ⅳ部分其他高級主題

第10章 Python2與Python3167

10.1跨版本兼容性策略167

10.1.1__future__模組168

10.1.22to3168

10.1.3限制170

10.1.4six170

10.2Python3中的變更171

10.2.1字元串與Unicode171

10.2.2Print函式171

10.2.3除法172

10.2.4絕對與相對導入173

10.2.5“老式風格”類的移除174

10.2.6元類語法175

10.2.7異常語法176

10.2.8字典方法178

10.2.9函式方法179

10.2.10疊代器179

10.3標準庫重定位180

10.3.1合併“高效”模組180

10.3.2URL模組181

10.3.3重命名181

10.3.4其他包重組181

10.4版本檢測182

10.5小結182

第11章 單元測試183

11.1測試的連續性183

11.1.1副本生態系統183

11.1.2隔離的環境184

11.1.3優點與缺點185

11.2測試代碼185

11.2.1代碼布局186

11.2.2測試函式186

11.2.3assert語句188

11.3單元測試框架188

11.3.1執行單元測試189

11.3.2載入測試192

11.4模擬193

11.4.1模擬函式調用193

11.4.2斷言被模擬的調用195

11.4.3檢查模擬197

11.4.4檢查調用199

11.5其他測試工具199

11.6小結201

第12章 CLI工具203

12.1optparse203

12.1.1一個簡單的參數203

12.1.2選項205

12.1.3使用optparse的原因212

12.2argparse213

12.2.1本質213

12.2.2參數與選項214

12.2.3使用argparse的理由220

12.3小結221

第13章 asyncio模組223

13.1事件循環223

13.2協程227

13.3Future對象與Task對象229

13.3.1Future對象229

13.3.2Task對象230

13.4回調231

13.4.1不保證成功232

13.4.2幕後232

13.4.3帶參數的回調233

13.5任務聚合233

13.5.1聚集任務234

13.5.2等待任務235

13.6佇列238

13.7伺服器240

13.8小結242

第14章 代碼風格243

14.1原則243

14.1.1假定你的代碼需要維護243

14.1.2保持一致性244

14.1.3考慮對象在程式中的存在方式,

尤其是那些帶有數據的

對象244

14.1.4不要做重複工作244

14.1.5讓注釋講故事245

14.1.6奧卡姆剃刀原則245

14.2標準245

14.2.1簡潔的規則246

14.2.2文檔字元串246

14.2.3空行246

14.2.4導入247

14.2.5變數247

14.2.6注釋248

14.2.7行長度248

14.3小結249

相關詞條

熱門詞條

聯絡我們