Python 高級編程, 2/e (Expert Python programming) Python高级编程(第2版)
[波蘭]Micha Jaworski 賈沃斯基 [法]Tarek Ziadé 萊德
- 出版商: 人民郵電
- 出版日期: 2017-09-01
- 定價: $534
- 售價: 8.5 折 $454
- 語言: 簡體中文
- 頁數: 403
- 裝訂: 平裝
- ISBN: 7115460159
- ISBN-13: 9787115460158
-
相關分類:
Python、程式語言
- 此書翻譯自: Expert Python Programming, 2/e (Paperback)
立即出貨
買這商品的人也買了...
-
$560Python 自然語言處理 (Natural Language Processing with Python)
-
$620$484 -
$500$395 -
$380$300 -
$199Python 設計模式, 2/e (Learning Python Design Patterns, 2/e)
-
$534$507 -
$1,150$1,093 -
$450$383 -
$880$695 -
$229Python 編程基礎與 HTTP 接口測試
-
$332深度學習框架 PyTorch : 入門與實踐
-
$500$390 -
$296內容算法:把內容變成價值的效率系統
-
$650$514 -
$294$279 -
$301實戰 Python 設計模式:可復用面向對象軟件開發實踐
-
$352深度學習訓練營 21天實戰 TensorFlow+Keras+scikit-learn
-
$1,188$1,129 -
$680$537 -
$480$379 -
$620$484 -
$780$616 -
$520$406 -
$580$493 -
$714$678
相關主題
商品描述
Python作為一種高-級程序設計語言,憑借其簡潔、易讀及可擴展性日漸成為程序設計領域備受推崇的語言之一。
本書基於Python 3.5版本進行講解,通過13章的內容,深度揭示了Python編程的高-級技巧。本書從Python語言及其社區的現狀開始介紹,對Python語法、命名規則、Python包的編寫、部署代碼、擴展程序開發、管理代碼、文檔編寫、測試開發、代碼優化、並發編程、設計模式等重要話題進行了全面系統化的講解。
本書適合想要進一步提高自身Python編程技能的讀者閱讀,也適合對Python編程感興趣的讀者參考學習。全書結合典型且實用的開發案例,可以幫助讀者創建高性能的、可靠且可維護的Python應用。
作者簡介
[波蘭]Micha Jaworski 賈沃斯基 [法]Tarek Ziadé萊德 (作者)
Micha Jaworski有著7年Python編程的經驗。他還是graceful的創建者,這是一個構建於falcon之上的REST框架。他曾在不同的公司擔任過多種角色,從一名普通的全棧開發人員到軟件架構師再到一家快節奏創業公司的工程副總裁。他目前是Opera軟件公司TV Store(電視應用商店)團隊的首-席後端工程師。他在設計高性能的分佈式服務方面擁有豐富的經驗。他還是一些流行的Python開源項目的活躍貢獻者。
Tarek Ziadé是Mozilla的工程經理,與一個專門用Python為Firefox構建大規模Web應用的團隊合作。他對Python打包做出過貢獻,而且從早期Zope開始就使用過各種不同的Python Web框架。
Tarek還創建了Afpy——法國的Python用戶組,並且用法語寫過兩本關於Python的書。他還在諸如Solutions Linux、PyCon、OSCON和EuroPython等國際活動中做過多次法語演講和教學。
目錄大綱
第1章Python現狀1
1.1 Python的現狀與未來1
1.2 Python升級及其原因2
1.3追踪Python最新變化——PEP文檔2
1.4當前Python 3的普及程度3
1.5 Python 3和Python 2的主要差異4
1.5. 1為什麼要關注這些差異4
1.5.2主要的語法差異和常見陷阱4
1.5.3用於保持跨版本兼容性的常用工具和技術6
1.6不只是CPython 9
1.6.1為什麼要關注Python實現10
1.6. 2 Stackless Python 10
1.6.3 Jython 10
1.6.4 IronPython 11
1.6.5 PyPy 11
1.7 Python開發的現代方法12
1.8應用層Python環境隔離13
1.8.1為什麼要隔離14
1.8.2常用解決方案15
1.8.3選擇哪種工具18
1.9系統級環境隔離19
1.9.1使用Vagrant的虛擬開發環境20
1.9.2容器化與虛擬化的對比21
1.10常用的生產力工具21
1.10.1自定義Python shell— IPython、bpython、 ptpython等22
1.10.2交互式調試器24
1.11有用的資源25
1.12小結25
第2章語法佳實踐——類級別以下26
2.1 Python的內置類型26
2.1.1字符串與字節27
2.1.2集合類型30
2.2高級語法39
2.2.1迭代器40
2.2.2 yield語句41
2.2.3裝飾器44
2.2.4上下文管理器—with語句54
2.3你可能還不知道的其他語法元素58
2.3.1 for...else ...語句58
2.3.2函數註解59
2.4小結60
第3章語法佳實踐—類級別以上61
3.1子類化內置類型61
3.2訪問超類中的方法63
3.2.1 Python 2中的舊式類與super 65
3.2.2理解Python的方法解析順序66
3.2.3使用super易犯的錯誤70
3.2.4佳實踐73
3.3高級屬性訪問模式73
3.3.1描述符74
3.3.2 property 79
3.3.3槽81
3.4元編程82
3.4.1裝飾器—一種元編程方法83
3.4.2類裝飾器83
3.4.3使用__new__()方法覆寫實例創建過程85
3.4.4元類87
3.4.5一些關於代碼生成的提示94
3.5小結100
第4章選擇好的名稱101
4.1 PEP 8與命名佳實踐101
4.1.1為何要遵守PEP 8以及何時遵守PEP 8 101
4.1.2超越PEP 8—團隊的風格指南102
4.2命名風格102
4.3命名指南110
4.3.1用“has”或“is”前綴命名布爾元素111
4.3.2用複數形式命名集合變量111
4.3.3用顯式名稱命名字典111
4.3.4避免通用名稱111
4.3.5避免現有名稱112
4.4參數的佳實踐113
4.4 .1通過迭代設計構建參數113
4.4.2信任參數和測試114
4.4.3小心使用*args和**kwargs魔法參數115
4.5類的名稱117
4.6模塊和包的名稱117
4.7有用的工具118
4.7.1 Pylint 118
4.7.2 pep8和flake8 120
4.8小結120
第5章編寫一個包121
5.1創建一個包121
5.1.1 Python打包工具的混亂狀態122
5.1.2項目配置123
5.1.3自定義setup命令131
5.1.4在開發期間使用包132
5.2命名空間包133
5.2.1為什麼有用133
5.2.2 PEP 420—隱式命名空間包135
5.2.3以前Python版本中的命名空間包136
5.3上傳一個包137
5.3.1 PyPI—Python包索引137
5.3.2源代碼包與構建包139
5.4獨立可執行文件142
5.4. 1獨立可執行文件何時有用143
5.4.2常用工具143
5.4.3可執行包中Python代碼的安全性150
5.5小結151
第6章部署代碼152
6.1十二要素應用152
6.2用Fabric進行自動化部署154
6.3你自己的包索引或索引鏡像158
6.3.1 PyPI鏡像159
6.3.2使用包進行部署160
6.4常見約定與實踐168
6.4.1文件系統層次結構168
6.4.2隔離168
6.4.3使用進程管理工具169
6.4.4應該在用戶空間運行應用代碼170
6.4.5使用HTTP反向代理171
6.4.6優雅地重新加載進程171
6.5代碼檢測與監控172
6.5.1記錄錯誤—sentry/raven 173
6.5.2監控系統與應用指標175
6.5.3處理應用日誌177
6.6小結181
第7章使用其他語言開發Python擴展182
7.1使用C或者C++編寫擴展182
7.2為什麼你想用擴展184
7.2.1提高關鍵代碼段的性能185
7.2.2集成現有的使用不同語言編寫的代碼185
7.2.3集成第三方動態庫185
7.2.4創建自定義數據類型186
7.3編寫擴展186
7.3.1純C擴展187
7.3.2 Cython 201
7.4挑戰205
7.4.1額外的複雜性205
7.4.2調試206
7.5無擴展的動態庫接口206
7.5.1 ctypes 207
7.5.2 CFFI 212
7.6小結214
第8章管理代碼215
8.1版本控制系統215
8.1.1集中式系統215
8.1.2分佈式系統217
8.1. 3集中式還是分佈式219
8.1.4盡可能使用Git 219
8.1.5 Git工作流程與GitHub工作流程220
8.2持續的開發過程223
8.2.1持續集成224
8.2.2持續交付227
8.2.3持續部署227
8.2.4常用的持續集成工具228
8.2.5選擇正確的工具和常見的陷阱234
8.3小結236
第9章文檔化你的項目237
9.1 7項技術寫作規則237
9.1.1兩步寫作238
9.1.2定位讀者238
9.1.3使用簡單的風格239
9.1.4限制信息範圍240
9.1.5使用現實中的代碼示例240
9.1.6使用輕量且充分的方法241
9.1.7使用模板241
9.2 reStructuredText入門242
9.2.1章節結構243
9.2. 2列表245
9.2.3行內標記246
9.2.4文字塊246
9.2.5鏈接247
9.3構建文檔248
9.4構建自己的文檔集254
9.4.1構建格局254
9.4.2文檔構建與持續集成259
9.5小結260
第10章測試驅動開發261
10.1我不測試261
10.1.1測試開發的原則261
10.1.2什麼樣的測試265
10.1.3達式Python標準測試工具268
10.2我做測試273
10.2.1 unittest陷阱273
10.2 .2 unittest的替代品274
10.2.3測試覆蓋率280
10.2.4仿真與模擬282
10.2.5測試環境與依賴兼容性289
10.2.6文檔驅動開發292
10.3小結294
第11章優化——一般原則與分析技術295
11.1 3個優化規則295
11.1.1首先要能工作295
11.1.2從用戶的角度考慮296
11.1.3保持代碼的可讀性和可維護性297
11.2優化策略297
11.2.1找到另外的罪魁禍首297
11.2.2擴展硬件298
11.2.3編寫速度測試298
11.3查找瓶頸299
11.3.1分析CPU使用情況299
11.3.2分析內存使用307
11.3.3分析網絡使用情況315
11.4小結316
第12章優化——一些強大的技術317
12.1降低複雜度318
12.1.1循環複雜度319
12.1.2大O記法320
12.2簡化322
12.3使用集合模塊323
12.3.1 deque 324
12.3.2 defaultdict 325
12.3.3 namedtuple 326
12.4架構體系的權衡327
12.4 .1使用啟發式和近似算法327
12.4.2使用任務隊列和延遲
處理328
12.4.3使用概率型數據結構331
12.5緩存331
12.5.1確定性緩存332
12.5.2非確定性緩存335
12.5.3緩存服務336
12.6小結338
第13章並發339
13.1為什麼需要並發339
13.2多線程340
13.2.1什麼是多線程340
13.2.2 Python如何處理多線程341
13.2.3何時應該使用多線程342
13.3多進程356
13.4異步編程364
13.4.1協同多任務與異步I/O 364
13.4.2 Python中的async和await關鍵字365
13.4.3老Python版本中的asyncio 369
13.4.4異步編程實例369
13.4.5使用futures將異步代碼同步化372
13.5小結374
第14章有用的設計模式376
14.1創建型模式376
14.2結構型模式379
14.2 .1適配器380
14.2.2代理394
14.2.3外觀395
14.3行為模式395
14.3.1觀察者396
14.3.2訪問者398
14.3.3模板400
14.4小結403