編輯推薦
本書由Python社區的大神Kenneth Reitz發起並組織編寫,由社區數百名開發者集體奉獻。最大的特色在於,近乎完整地總結了在Python編程中會用到的各種實踐技巧和經驗,涵蓋眾多主流的套用場景,並告訴你如何提高效率、避免踩坑、編寫高質量的代碼。
本書涉及開發環境和部署、編寫符合Pythonic品味的代碼、各套用場景下主流的Python解決方案、學習資源推薦等多個方面,有足夠的廣度也有合適的深度。不僅如此,書中還分享了閱讀代碼的思路、方法和技巧,告訴你為什麼這么設計……並清晰地呈現了項目結構圖,有極強的學習價值。
它就像一位導師,從你步入Python編程開發的大門時起,便詳細地告訴你哪些應該做,哪些不應該做以及為什麼這樣選擇,如何做技術選型、各自的優缺點……讓你在零起步的基礎上,便能安心地、迅速地上手實踐。
本書不僅適合初學者入門,也適合資深人士作為案頭參考。
內容提要
《Python編程之美:最佳實踐指南》是Python用戶的一本百科式學習指南,由Python社區數百名成員協作奉獻。
全書內容分為三大部分。第1部分是關於如何配置和使用Python編輯工具的;第2部分深入講解地道Python風格的代碼範例;第3部分研究Python社區常用的一些代碼庫。
《Python編程之美:最佳實踐指南》適合有一定Python基礎的人員學習,幫助你迅速從小工修煉成專家,編寫出高質量的代碼!
目錄
前言 xix
第1 部分 起步
第1 章 選擇一個解釋器 3
Python 2 與Python 3 的狀況對比 3
建議 3
那就選擇Python 3 嗎 4
Python 的不同實現 4
CPython 5
Stackless 5
PyPy 5
Jython 5
IronPython 6
PythonNet 6
Skulpt 6
MicroPython 7
第2 章 恰當地安裝Python 9
在Mac OS X 上安裝Python 9
Setuptools 和pip 11
virtualenv 11
在Linux 上安裝Python 12
Setuptools 和pip 12
開發工具 13
virtualenv 14
在Windows 上安裝Python 15
Setuptools 和pip 17
virtualenv 17
商業化Python 二次發行版 18
第3 章 搭建開發環境 21
文本編輯器 21
Sublime Text 22
Vim 23
Emacs 25
TextMate 26
Atom 26
Code 26
IDE 27
PyCharm/IntelliJ IDEA 28
Aptana Studio 3/Eclipse+LiClipse+PyDev 29
WingIDE 29
Spyder 30
NINJA-IDE 30
Komodo IDE 30
Eric(Eric Python IDE) 31
Visual Studio 31
增強型互動式工具 32
IDLE 32
IPython 32
bpython 33
環境隔離工具 33
虛擬環境 33
pyenv 35
Autoenv 36
virtualenvwrapper 36
Buildout 37
Conda 38
Docker 39
第2 部分 步入正題
第4 章 編寫高質量的代碼 43
代碼風格 43
PEP 8 43
PEP 20(又名Python 之禪) 44
一般性建議 45
約定 52
習語 55
常見陷阱 58
組織好項目的結構 61
模組 61
包 65
面向對象編程 66
裝飾器 67
動態類型 68
可變類型和不可變類型 69
管理依賴 71
測試代碼 72
測試的基礎知識 73
舉例說明 76
其他流行工具 80
文檔 82
項目文檔 82
項目配套發行文檔 83
文檔字元串與塊注釋 84
日誌 84
在庫中使用logging 85
在套用中使用logging 86
選擇許可證 88
上游許可證 88
許可證選項 89
軟體許可相關的學習資源 90
第5 章 閱讀高質量的代碼 91
共同特徵 92
HowDoI 92
閱讀單檔案腳本 93
取自HowDoI 的結構示例 96
取自HowDoI 的風格示例 97
Diamond 99
閱讀一個更大的應用程式 99
取自Diamond 的結構示例 105
取自Diamond 的風格示例 109
Tablib 111
閱讀一個小型庫 112
取自Tablib 的結構示例 115
取自Tablib 的風格示例 123
Requests 126
閱讀一個更大的庫 126
取自Requests 的結構示例 130
取自Requests 的風格示例 134
Werkzeug 139
閱讀一個工具包的代碼 140
取自Werkzeug 的風格示例 148
取自Werkzeug 的結構示例 149
Flask 156
閱讀一個框架的代碼 156
取自Flask 的風格示例 163
取自Flask 的結構示例 164
第6 章 交付高質量的代碼 169
有用的辭彙和概念 170
打包你的代碼 171
Conda 171
PyPI 171
凍結你的代碼 174
PyInstaller 176
cx_Freeze 178
py2app 179
py2exe 180
bbFreeze 181
Linux 已構建分發包的打包技術 181
可執行的ZIP 檔案 183
第3 部分 場景化指南
第7 章 用戶互動 187
Jupyter Notebooks 項目 187
命令行套用 188
圖形化用戶界面套用 196
視窗部件庫 196
遊戲開發 202
Web 套用 203
Web 框架/ 微框架 203
Web 模板引擎 206
Web 部署 212
第8 章 代碼管理和改進 215
持續集成 215
系統管理 216
伺服器自動化 218
系統和任務監控 222
加速 225
與C/C++/FORTRAN 庫進行互動 235
第9 章 軟體接口 239
Web 客戶端庫 240
Web API 240
數據序列化 245
分散式系統 248
網路編程 248
密碼技術 254
第10 章 數據操作 261
科學套用 262
文本操作和文本挖掘 266
Python 標準庫中的字元串工具 266
圖像操作 269
第11 章 數據持久化 273
結構化檔案 273
資料庫接口庫 274
附錄A 補充說明 289
作者簡介
Kenneth Reitz
Python界的大神、Python軟體基金會會員,因眾多開源項目而聞名(其中最著名的是“ Requests: HTTP for Humans”),高顏值的攝影愛好者,電子音樂製作師,健身減肥成功的勵志男……曾任Heroku公司Python架構負責人,現任職於DigitalOcean。
Tanya Schlusser
數據決策方向的獨立顧問,為學生和企業團隊提供的數據科學培訓時長已超過1000小時,並照顧患有阿茲海默症的媽媽。
譯者簡介:
夏永鋒 百度資深研發工程師,曾就職於騰訊,對Python、GO、JAVA開發均有較豐富的實戰經驗,長期從事後台開發、大數據處理方面的工作。愛好編程和技術翻譯。
媒體評論
書中的內容對我學習和實踐Python有非常大的幫助。
——董偉明
豆瓣高級產品開發工程師、《Python Web開發實戰》作者
本書是Python開發者的實操指引,Kenneth Reitz 出品,必屬精品。
——劉志軍
公眾號“Python之禪”出品人
本書追根溯源,從代碼風格、設計哲學、開源項目等各方面為我們詳述了Python強大的生態系統,書名中的“最佳實踐指南”名副其實。
——阿橙
公眾號“Python中文社區”主編
本書不僅僅是一本Python教程,更多的是通過一些優秀項目源碼,向讀者闡釋了如何寫出更優雅的Python代碼……有助於Python學習者完成向 Pythonic 的轉變。
——Crossin 公眾號“Crossin的編程教室”作者、碼課創始人
《Python編程之美:最佳實踐指南》一書幫助開發者破解了一些常見疑惑,提供了具有實踐價值的指南。
——齊偉 “跟老齊學Python”系列圖書作者
學習一門程式語言,從入門到進階的一條捷徑就是學習前輩專家的開發經驗,而這本書正是這些專家經驗的總結。
——楊學光 Django中文社區發起人
這真是一本令人驚嘆的好書!它並不是教授Python語言本身的,而是假定你已經有了一定的編程基礎。它闡述的是編程相關的知識點:何時、何地、怎樣運用Python,如何使用各類Python工具……這使得你可以高效地編寫代碼、運維程式,並與其他程式優雅的互動。
——讀者來自amazon.com
精煉且詳略得當,這本《Python編程之美:最佳實踐指南》一定會讓你深入了解Python大世界。
——Raymond Hettinger,傑出的Python核心開發者
本書是Python開發必備。對於新手來說,它是一份記錄社區約定和最佳實踐的學習資源,其價值不可估量。
——Eric Holscher,Read the Docs公司(readthedocs.org)的聯合創始人
前言
Python 是一個大世界,大到讓你難以置信!
本書不是教你如何學習Python 語言的(我們引用了大量優秀資源供你學習),而是一份Python 社區推薦工具和最佳實踐的(有態度的)業內指南。本書的目標讀者是初級到中級水平的Python 程式設計師,他們可能有志於使用Python 為開源項目做貢獻、開啟一段職業生涯或開創一家公司,不過臨時用用Python 的人也會發現第1 部分和第5 章的內容對自己頗有幫助。
本書的第1 部分幫助讀者選擇適合各自場景的文本編輯器或互動式開發環境(例如,常用Java 的讀者可能偏愛Eclipse,用它安裝Python 開發外掛程式),並調研了其他可選擇的解釋器,這些解釋器也許可以滿足那些你還不知道的Python 能夠解決的需求(例如,MicroPython 是基於ARM Cortex-M4 晶片的一個實現)。第2 部分重點介紹開源社區公認的範例代碼,展示地道的Python 代碼風格,希望能夠鼓勵讀者進一步深入閱讀和嘗試開原始碼。第3 部分簡要地調研了大量的Python 社區常用庫,讓讀者初步認識到目前Python 涉及的領域。
本書紙質版的所有版稅都捐贈給Django Girls,這是一個充滿歡樂的全球性組織,旨在組織免費的Django 和Python 講習班,創建開源的線上教程,策劃令人驚嘆的技術體驗活動。