發表於2024-12-26
Python是使用廣泛的動態編程語言之一。它支持一組豐富的庫和框架,從而能夠用來進行快速開發。但是,如此快速的開發通常會帶來一些問題,容易導緻代碼整體質量、性能和擴展性的降低。本書將會教你如何處理這些問題,以及如何編寫齣更好的Python應用程序。
本書從簡單命令行應用程序的基礎知識入手,幫助讀者不斷提高技能,直到可以設計齣高效的、高級的Python應用。本書使用輕鬆奇幻的學習主綫,用具體解決方案來應對在復雜的Python開發中遇到的實際問題。讀者從關注健壯性,以及程序代碼的打包和發布開始,通過提高代碼的可擴展性、可重用性以及可讀性來提高應用程序的生命周期,並掌握Python代碼重構、設計模式。在關於性能的章節中,讀者學會識彆性能瓶頸並提升性能,最後還將學習如何開發Python圖形界麵應用程序。
通過閱讀本書,您將能夠:
● 通過異常處理來創建健壯的應用程序。
● 源代碼的模塊化、打包和發布。
● 編寫代碼文檔,實施代碼規範。
● 在開發初期通過創建自動化測試發現程序漏洞。
● 識彆並重構糟糕的代碼以擴大應用的生命周期。
● 檢測代碼中重復齣現的問題並使用設計模式。
● 通過識彆性能瓶頸並修復問題來提高代碼執行效率。
● 使用Python開發簡單的圖形界麵應用程序。
Python是使用較多的動態編程語言之一,應用廣泛,學習者眾多。
本書使用一個生動有趣的、基於文本的遊戲主題作為講解內容來介紹Python應用開發過程的各個方麵。全書共10章,涉及簡單應用開發、模塊化、打包和發布應用的代碼、文檔規範、單元測試、重構、設計模式、性能監測、性能優化、GUI應用、MVC框架等方方麵麵的軟件開發知識和技能。
本書適閤有一定Python語言基礎,想要快速掌握Python項目開發知識、提高Python開發實戰技能的讀者學習參考。
在Ninad Sathaye的職業生涯中,他有多年使用包括Python和C++在內的多種語言設計和開發性能關鍵應用的經驗。他曾是半導體行業中的一個軟件架構師,最近又轉入物聯網領域。他擁有機械工程碩士學位。
第1章開發簡單應用 1
1.1 重要提示 2
1.2 安裝的先決條件 2
1.2.1 安裝Python 3
1.3 本書的主題 8
1.3.1 瞭解本書人物 8
1.4 簡單的腳本—獸人之襲
v0.0.1 9
1.4.1 遊戲簡介—獸人之襲
v0.0.1 10
1.4.2 問題說明 10
1.4.3 僞代碼—0.0.1版本 10
1.4.4 代碼查看 11
1.4.5 運行獸人之襲v0.0.1 14
1.5 使用函數—獸人之襲
v0.0.5 14
1.5.1 重新迴顧以前的版本 15
1.5.2 有攻擊功能的僞代碼—版本0.0.5 17
1.5.3 代碼查看 19
1.5.4 運行獸人之襲v0.0.5 21
1.6 使用麵嚮對象編程—獸人之襲v1.0.0 22
1.6.1 功能需求的優先度 23
1.6.2 問題說明 24
1.6.3 重新設計代碼 24
1.6.4 描繪整個場景 25
1.6.5 代碼查看 27
1.6.6 運行獸人之襲v1.0.0 31
1.7 Python中的抽象基類 32
1.7.1 練習 33
1.8 小結 34
1.8.1 對電子書讀者非常重要的提示 34
第2章異常處理 36
2.1 修改獸人之襲v1.0.0 36
2.1.1 問題調試 37
2.1.2 bug修復中…… 38
2.2 異常 39
2.2.1 什麼是異常 39
2.2.2 最常見的異常 39
2.2.3 異常處理 40
2.2.4 異常的拋齣和再拋齣 42
2.2.5 try...except的else代碼塊 43
2.2.6 finally...清理吧 44
2.3 迴歸遊戲—獸人之襲
v1.1.0 45
2.3.1 準備工作 45
2.3.2 增加異常處理代碼 46
2.3.3 運行獸人之襲v1.1.0 47
2.4 自定義異常 48
2.4.1 準備工作 48
2.4.2 自定義異常— 問題所在 49
2.4.3 編寫一個新的異常類 50
2.4.4 擴展異常類 51
2.4.5 繼承exception類 53
2.5 練習 55
2.6 小結 56
第3章 模塊化、包和部署 57
3.1 選擇一種版本控製規約 58
3.1.1 連續遞增 58
3.1.2 使用日期格式 59
3.1.3 語義版本控製方案 59
3.2 代碼模塊化 60
3.2.1 獸人之襲v2.0.0 60
3.3 創建Python包 62
3.3.1 從包中錄入 63
3.4 在PyPI上發布包 64
3.4.1 發行版本準備 65
3.4.2 上傳發行版 69
3.4.3 一條命令完成所有的 事情 73
3.4.4 安裝你自己的發行版 73
3.5 使用私有的PyPI倉庫 75
3.5.1 步驟1—安裝 pypiserver 75
3.5.2 步驟2—創建一個新的 源代碼發行版 75
3.5.3 步驟3—啓動本地 服務器 76
3.5.4 步驟4—安裝私有 發行版 76
3.6 創建增量發布 77
3.6.1 打包並上傳新版本 77
3.6.2 升級已經安裝的版本 77
3.7 代碼的版本控製 78
3.7.1 Git資源 78
3.7.2 安裝Git 78
3.7.3 配置你的驗證信息 79
3.7.4 Git基礎術語 79
3.7.5 創建並使用本地倉庫 80
3.8 使用Git的GUI客戶端 83
3.9 練習 84
3.10 小結 85
第4章 代碼文檔和最佳實踐 86
4.1 編寫代碼文檔 87
4.1.1 文檔字符串 88
4.1.2 reStructuredText簡介 89
4.1.3 使用RST的文檔 字符串 92
4.1.4 文檔字符串格式化風格 94
4.1.5 自動生成文檔字符串 stubs 95
4.1.6 使用Sphinx生成文檔 97
4.2 Python編碼標準 103
4.3 代碼分析—我們做得 怎麼樣呢 105
4.3.1 使用IDE進行代碼 分析 105
4.3.2 Pylint 106
4.4 練習 110
4.5 小結 110
第5章 單元測試和重構 111
5.1 本章的組織方式 111
5.1.1 重要說明 112
5.2 為何要進行測試 112
5.2.1 提齣瞭一個新的需求 112
5.2.2 你實現瞭這個功能 113
5.2.3 但是有些事情似乎 不對瞭…… 114
5.2.4 它需要完全測試 115
5.3 單元測試 115
5.3.1 Python的unittest 框架 116
5.4 為應用程序編寫單元測試 121
5.4.1 創建測試包 121
5.4.2 為單元測試創建新 的類 122
5.4.3 第1個單元測試— 受傷方的選擇 123
5.4.4 運行第1個單元測試 124
5.4.5 第2個單元測試— 占領木屋 124
5.4.6 創建自己的測試模塊 127
5.4.7 批量執行單元測試 127
5.5 使用模擬庫的單元測試 128
5.5.1 Mock的簡介 128
5.5.2 讓我們開始Mock吧 129
5.5.3 在單元測試中使用Mock 對象 131
5.5.4 使用補丁 133
5.5.5 第3個單元測試— play方法 135
5.6 你的代碼被覆蓋到瞭嗎 139
5.6.1 解決導入錯誤 140
5.7 其他單元測試工具 141
5.7.1 Doctest 141
5.7.2 Nose 141
5.7.3 Pytest 142
5.8 重構的前言 142
5.8.1 繞個彎路—可測試性重構 144
5.9 重構 144
5.9.1 什麼是重構 145
5.9.2 為什麼要進行重構 145
5.9.3 何時進行重構 145
5.9.4 如何進行重構 146
5.9.5 移動 148
5.10 重新審視單元測試 150
5.10.1 可測試化重構 150
5.10.2 第4個單元測試— setup_game_scenario 152
5.11 練習 152
5.11.1 重構和重新設計練習 153
5.12 小結 153
第6章 設計模式 154
6.1 設計模式的介紹 154
6.1.1 設計模式的分類 155
6.2 Python語言和設計模式 156
6.2.1 一級函數 157
6.2.2 類作為一級對象 157
6.2.3 閉包 158
6.2.4 各種特性 159
6.2.5 鴨子類型 160
6.3 本章餘下內容的結構 161
6.4 快進—獸人之襲
v6.0.0 162
6.5 策略模式 164
6.5.1 策略場景—跳躍 特性 164
6.5.2 策略—主要的問題 165
6.5.3 策略—嘗試解決 方案 166
6.5.4 策略—重新考慮 設計 168
6.5.5 策略方案1— 傳統方法 169
6.5.6 策略方案2— Python方法 172
6.6 簡單工廠 174
6.6.1 簡單工廠場景— 招募特性 174
6.6.2 簡單工廠— 主要的問題 175
6.6.3 簡單工廠—重新 考慮設計 176
6.6.4 簡單工廠方案1— 傳統方法 177
6.6.5 簡單工廠方案2— Python方法 178
6.7 抽象工廠模式 180
6.7.1 抽象工廠場景— 飾品店 181
6.7.2 抽象工廠—主要的 問題 184
6.7.3 抽象工廠—重新考慮 設計 184
6.7.4 抽象工廠方案— Python方法 186
6.8 適配器模式 188
6.8.1 適配器模型—精靈的 遠房親戚 189
6.8.2 適配器—主要的 問題 189
6.8.3 適配器—嘗試解決 方案 190
6.8.4 適配器解決方案— Python方法 191
6.9 小結 194
第7章 性能—識彆瓶頸 195
7.1 三個性能章節的總覽 195
7.1.1 更注重運行時的性能 195
7.1.2 關於性能的第1個 章節 196
7.1.3 關於性能的第2個 章節 196
7.1.4 關於性能的第3個 章節 196
7.1.5 看一下應用性能提升 196
7.2 遊戲場景—尋找黃金 197
7.2.1 頂層算法 199
7.2.2 查看最初的代碼 200
7.2.3 運行代碼 202
7.3 主要的問題 203
7.4 識彆瓶頸 204
7.4.1 衡量執行時間 204
7.4.2 監測代碼片段的運行 時間 205
7.4.3 代碼分析 206
7.5 內存分析 212
7.5.1 memory_profiler包 212
7.6 算法效率和復雜度 214
7.6.1 算法效率 214
7.6.2 算法復雜度 214
7.7 大O符號 214
7.7.1 大O復雜類 215
7.8 小結 221
第8章 性能優化1 222
8.1 本章的前提 223
8.2 本章的組織方式 223
8.3 迴顧“尋找黃金”的場景 224
8.3.1 選擇問題的數據大小 224
8.3.2 分析最初的代碼 224
8.4 優化“尋找黃金”—
第1部分 225
8.4.1 調整算法—平方根 225
8.4.2 跳過點操作符 228
8.4.3 使用本地範圍 230
8.5 性能優化的一些事項 232
8.5.1 列錶推導式 233
8.5.2 記錄執行時間 234
8.5.3 字典推導式 235
8.5.4 交換條件塊和for 循環 235
8.5.5 在循環中使用try語句 236
8.5.6 選擇正確的數據結構 237
8.5.7 collections模塊 238
8.5.8 生成器和生成器 錶達式 241
8.5.9 itertools模塊 245
8.6 練習 247
8.7 小結 247
第9章 性能優化2—NumPy和 並行化 248
9.1 本章的先決條件 248
9.2 本章的組織方式 248
9.3 NumPy的簡介 249
9.3.1 安裝NumPy 250
9.3.2 創建數組對象 250
9.3.3 簡單的數組操作 251
9.3.4 數組切割和索引 252
9.3.5 廣播 254
9.3.6 其他功能 255
9.3.7 從哪裏能獲得更多關於 NumPy的信息 262
9.4 優化“尋找黃金”—
第2部分 262
9.4.1 “尋找黃金”優化— 優化四 262
9.4.2 “尋找黃金”優化— 優化五 264
9.5 使用multiprocessing模塊的 並行化 267
9.5.1 並行化簡介 267
9.5.2 全局解釋器鎖 268
9.5.3 multiprocessing模塊 268
9.6 “尋找黃金”程序並行化 271
9.6.1 重訪黃金領地 271
9.6.2 “尋找黃金”優化— 優化六,並行化 273
9.7 進一步閱讀 277
9.7.1 JIT編譯器 277
9.8 小結 278
第10章簡單的圖形應用程序 280
10.1 GUI框架概述 281
10.1.1 Tkinter 281
10.1.2 PyQt 281
10.1.3 PySide 282
10.1.4 Kivy 282
10.1.5 wxPython 282
10.2 GUI編程設計注意事項 283
10.2.1 瞭解用戶的需求 283
10.2.2 開發用戶故事 283
10.2.3 簡單性和可訪問性 283
10.2.4 一緻性 284
10.2.5 可預測性和熟悉性 284
10.2.6 其他設計考慮 284
10.3 事件驅動編程 284
10.3.1 事件 285
10.3.2 事件處理 285
10.3.3 事件循環 285
10.4 使用Tkinter進行GUI 編程 286
10.4.1 Tkinter的文件鏈接 286
10.4.2 Tkinter中的 mainloop() 286
10.4.3 簡單GUI應用程序—
第1步 287
10.4.4 簡單GUI應用程序—
第2步 289
10.4.5 Tkinter中的GUI
控件 290
10.4.6 布局管理 292
10.4.7 Tkinter中的事件 294
10.4.8 Tkinter中的事件 處理 296
10.5 項目1—獸人之襲
v10.0.0 298
10.5.1 遊戲場景 298
10.5.2 問題聲明 298
10.5.3 編寫代碼 299
10.5.4 運行應用程序 305
10.6 MVC架構 306
10.6.1 模型 307
10.6.2 視圖 307
10.6.3 控製器 307
10.6.4 MVC的好處 308
10.7 項目2—獸人之襲
v10.1.0 308
10.7.1 重新修改HutGame類 308
10.7.2 創建MVC類 309
Python應用開發實戰 下載 mobi epub pdf txt 電子書 格式
Python應用開發實戰 下載 mobi pdf epub txt 電子書 格式 2024
Python應用開發實戰 下載 mobi epub pdf 電子書此用戶未填寫評價內容
評分此用戶未填寫評價內容
評分學習計算機語言
評分如果大傢看到此評論,說明我對購買的商品還沒有發現什麼問題,所以是默認為還不錯的。如果此商品很好,我會繼續追加好評。如果此商品很差,我會專門對其差評,而不會看到此條評論。
評分如果大傢看到此評論,說明我對購買的商品還沒有發現什麼問題,所以是默認為還不錯的。如果此商品很好,我會繼續追加好評。如果此商品很差,我會專門對其差評,而不會看到此條評論。
評分學習計算機語言
評分如果大傢看到此評論,說明我對購買的商品還沒有發現什麼問題,所以是默認為還不錯的。如果此商品很好,我會繼續追加好評。如果此商品很差,我會專門對其差評,而不會看到此條評論。
評分學習計算機語言
評分學習新的計算機語言
Python應用開發實戰 mobi epub pdf txt 電子書 格式下載 2024