Python 代碼整潔之道:編寫優雅的代碼 Clean Python: Elegant Coding in Python

Sunil Kapil 連少華譯

  •  Python 代碼整潔之道:編寫優雅的代碼-preview-1
  •  Python 代碼整潔之道:編寫優雅的代碼-preview-2
  •  Python 代碼整潔之道:編寫優雅的代碼-preview-3
  •  Python 代碼整潔之道:編寫優雅的代碼-preview-4
  •  Python 代碼整潔之道:編寫優雅的代碼-preview-5
  •  Python 代碼整潔之道:編寫優雅的代碼-preview-6
  •  Python 代碼整潔之道:編寫優雅的代碼-preview-7
  •  Python 代碼整潔之道:編寫優雅的代碼-preview-8
 Python 代碼整潔之道:編寫優雅的代碼-preview-1

買這商品的人也買了...

商品描述

內容簡介
探索使用Python編寫代碼的正確方法。
本書提供了構建無錯誤和強壯的Python項目所需的技巧和技術。
為了講授如何編寫更好的代碼,本書首先介紹理解代碼格式化和代碼註釋的重要性,以
及利用內置數據結構和Python字典提高可維護性,使用模塊和元類有效地組織代碼;

然後深入介紹Python語言的新特性,並教會讀者如何有效地使用它們;接下來,
將深入介紹一些關鍵概念,如異步編程、Python數據類型、類型提示和路徑處理等,
並講述調試、單元測試和集成測試的技巧,以保證代碼可以投入生產;
最後在附錄中介紹了一些有助於加快開發速度和提高代碼質量的優秀Python工具。

閱讀本書之後,你將會熟練地編寫整潔的Python代碼,
並可以成功地將這些原則應用到自己的Python項目中。

你將學到以下內容:
●正確地使用表達式和語句
●創建字典並評估字典的使用
●使用Python中的高級數據結構
●編寫更好的模塊、類、函數和元類
●編寫異步代碼
●發現Python的新特性

作者簡介

【作者簡介】

Sunil Kapil

在過去的10年中一直從事軟件開發工作,用Python和其他幾種語言編寫代碼,主要涉及Web和移動端服務的軟件開發。
他開發、部署並維護了被數百萬用戶喜愛和使用的各種項目,
這些項目是與來自不同專業環境的團隊合作完成的,涉及世界著名的軟件公司。
他也是開源的熱情倡導者,並持續貢獻Zulip Chat和Black等項目。
他還與非營利組織合作,並以志願者的身份為其軟件項目做出貢獻。
Sunil Kapil經常在各種聚會和會議上討論Python。
你可以訪問他的有關軟件工程、工具和技術的網站。
最重要的是,你可以通過電子郵件聯繫他或在社交媒體上關注他。

【譯者介紹】

連少華 

先後就職於中興通訊、深交所、金證股份等知名公司和機構,熱衷於軟件事業,技術棧廣泛,涉及C++、
C#、Java、Python、Golang等,對架構設計和底層技術有深入的理解和實踐,曾經給國外的一些開源庫提交過bug並貢獻過代碼。
在CSDN論壇擔任過5年多的C++小版的版主和C/C++大版的版主。
譯有《C++代碼整潔之道》,現致力於大數據平台的設計與開發。

目錄大綱

●第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