《Python代碼整潔之道》是2020年機械工業出版社出版的圖書,作者是蘇尼爾·卡皮爾。
基本介紹
- 中文名:Python代碼整潔之道
- 作者:蘇尼爾·卡皮爾
- 出版時間:2020年
- 出版社:機械工業出版社
- ISBN:9787111665878
內容簡介,圖書目錄,
內容簡介
探索使用Python編寫代碼的正確方法。本書提供了構建無錯誤和強壯的Python項目所需的技巧和技術。
為了講授如何編寫更好的代碼,本書首先介紹理解代碼格式化和代碼注釋的重要性,以及利用內置數據結構和Python字典提高可維護性,使用模組和元類有效地組織代碼;
然後深入介紹Python語言的新特性,並教會讀者如何有效地使用它們;接下來,將深入介紹一些關鍵概念,如異步編程、Python數據類型、類型提示和路徑處理等,並講述調試、單元測試和集成測試的技巧,以保證代碼可以投入生產;
最後在附錄中介紹了一些有助於加快開發速度和提高代碼質量的優秀Python工具。
閱讀本書之後,你將會熟練地編寫整潔的Python代碼,並可以成功地將這些原則套用到自己的Python項目中。
圖書目錄
第1章 關於Python的思考1
1.1 編寫Python代碼1
1.1.1 命名2
1.1.2 代碼中的表達式和語句5
1.1.3 擁抱Python編寫代碼的方式8
1.2 使用文檔字元串14
1.2.1 模組級文檔字元串17
1.2.2 使類文檔字元串具有描述性17
1.2.3 函式文檔字元串18
1.2.4 一些有用的文檔字元串工具19
1.3 編寫Python的控制結構20
1.3.1 使用列表推導20
1.3.2 不要使用複雜的列表推導21
1.3.3 應該使用lambda嗎23
1.3.4 何時使用生成器與何時使用列表推導23
1.3.5 為什麼不要在循環中使用else24
1.3.6 為什麼range函式在Python 3中更好27
1.4 引發異常28
1.4.1 習慣引發異常28
1.4.2 使用finally來處理異常30
1.4.3 創建自己的異常類31
1.4.4 只處理特定的異常32
1.4.5 小心第三方的異常34
1.4.6 try最少的代碼塊35
1.5 小結36
●第2章 數據結構38
2.1 常用數據結構38
2.1.1 使用集合38
2.1.2 返回和訪問數據時使用namedtuple40
2.1.3 理解str、Unicode和byte43
2.1.4 謹慎使用列表,優先使用生成器44
2.1.5 使用zip處理列表47
2.1.6 使用Python的內置函式48
2.2 使用字典50
2.2.1 何時使用字典與何時使用其他數據結構51
2.2.2 collections51
2.2.3 有序字典、默認字典、普通字典54
2.2.4 使用字典的switch語句55
2.2.5 合併兩個字典的方法56
2.2.6 優雅地列印字典57
2.3 小結58
●第3章 編寫更好的函式和類59
3.1 函式59
3.1.1 編寫小函式60
3.1.2 返回生成器61
3.1.3 引發異常替代返回None63
3.1.4 使用默認參數和關鍵字參數64
3.1.5 不要顯式地返回None66
3.1.6 編寫函式時注意防禦68
3.1.7 單獨使用lambda表達式70
3.2 類72
3.2.1 類的大小72
3.2.2 類結構73
3.2.3 正確地使用@property75
3.2.4 什麼時候使用靜態方法77
3.2.5 繼承抽象類79
3.2.6 使用@classmethod來訪問類的狀態80
3.2.7 使用公有屬性代替私有屬性81
3.3 小結83
●第4章 使用模組和元類84
4.1 模組和元類84
4.2 如何使用模組組織代碼86
4.3 使用__init__檔案88
4.4 以正確的方式從模組導入函式和類90
4.5 何時使用元類92
4.6 使用__new__方法驗證子類93
4.7 __slots__的用途95
4.8 使用元類改變類的行為98
4.9 Python描述符100
4.10 小結102
●第5章 裝飾器和上下文管理器104
5.1 裝飾器105
5.1.1 裝飾器及其作用105
5.1.2 理解裝飾器106
5.1.3 使用裝飾器更改行為108
5.1.4 同時使用多個裝飾器110
5.1.5 使用帶參數的裝飾器111
5.1.6 考慮使用裝飾器庫112
5.1.7 用於維護狀態和驗證參數的類裝飾器114
5.2 上下文管理器117
5.2.1 上下文管理器及用途117
5.2.2 理解上下文管理器119
5.2.3 使用contextlib創建上下文管理器120
5.2.4 上下文管理器的示例121
5.3 小結124
●第6章 生成器與疊代器125
6.1 使用生成器和疊代器125
6.1.1 理解疊代器125
6.1.2 什麼是生成器128
6.1.3 何時使用疊代器129
6.1.4 使用itertools130
6.1.5 為什麼生成器非常有用132
6.1.6 列表推導和疊代器133
6.2 使用yield關鍵字133
6.2.1 yield from135
6.2.2 yield相比數據結構更快135
6.3 小結136
●第7章 使用Python的新特性137
7.1 異步編程137
7.1.1 Python中的async138
7.1.2 asyncio是如何工作的141
7.1.3 異步生成器151
7.2 類型標註159
7.2.1 Python中的類型160
7.2.2 typing模組160
7.2.3 類型檢查會影響性能嗎163
7.2.4 類型標註如何幫助編寫更好的代碼163
7.2.5 typing的陷阱163
7.3 super()方法164
7.4 類型提示164
7.5 使用pathlib處理路徑164
7.6 print()現在是一個函式165
7.7 f-string165
7.8 關鍵字參數166
7.9 保持字典數據的順序166
7.10 疊代解包166
7.11 小結167
●第8章 調試和測試Python代碼168
8.1 調試168
8.1.1 調試工具169
8.1.2 breakpoint172
8.1.3 在產品代碼中使用logging模組替代print172
8.1.4 使用metrics庫來分析性能瓶頸177
8.1.5 IPython有什麼幫助178
8.2 測試179
8.2.1 測試非常重要179
8.2.2 Pytest和UnitTest180
8.2.3 屬性測試184
8.2.4 生成測試報告184
8.2.5 自動化單元測試185
8.2.6 讓代碼為生產做好準備186
8.2.7 在Python中執行單元和集成測試186
8.3 小結189
附錄 一些很棒的Python工具190