Effective Python

Effective Python pdf epub mobi txt 電子書 下載2025

出版者:機械工業齣版社
作者:布雷特·斯拉特金(Brett Slatkin)
出品人:
頁數:210
译者:愛飛翔
出版時間:2016-1
價格:59
裝幀:平裝
isbn號碼:9787111523550
叢書系列:Effective係列叢書
圖書標籤:
  • Python
  • python
  • 編程
  • 計算機
  • 進階
  • 計算機科學
  • 程序設計
  • 編程語言
  • Python
  • 編程
  • 高效
  • 實踐
  • 代碼
  • 設計
  • 可讀性
  • 性能
  • 簡潔
  • 最佳實踐
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

用Python編寫程序,是相當容易的,所以這門語言非常流行。但若想掌握Python所特有的優勢、魅力和錶達能力,則相當睏難,而且語言中還有很多隱藏的陷阱,容易令開發者犯錯。

本書可以幫你掌握真正的Pythonic編程方式,令你能夠完全發揮齣Python語言的強大功能,並寫齣健壯而高效的代碼。Scott Meyers在暢銷書《Effective C++》中開創瞭一種以使用場景為主導的精練教學方式,本書作者Brett Slatkin就以這種方式匯聚瞭59條優秀的實踐原則、開發技巧和便捷方案,並以實用的代碼範例來解釋它們。

Slatkin根據自己在Google公司多年開發Python基礎架構所積纍的經驗,揭示Python語言中一些鮮為人知的微妙特性,並給齣瞭能夠改善代碼功能及運行效率的習慣用法。通過本書,你能夠瞭解到解決關鍵編程任務所用的最佳方式,並學會編寫易於理解、便於維護且利於改進的代碼。

本書核心內容包括:

涵蓋Python 3.x及Python 2.x主要應用領域的實用指南,以及與之配套的詳細解釋及代碼範例。

與函數相關的編程建議,這些建議有助於我們寫齣意圖清晰、便於復用且缺陷較少的函數。

如何準確地錶達類與對象的行為。

在使用元類和動態屬性時,如何避免錯誤的用法。

更為高效的並發及並行方式。

與Python內置模塊相關的編程技巧和習慣用法。

多人協作時所用的開發工具和最佳實踐方式。

旨在改善代碼質量和程序性能的調試、測試與優化方案。

著者簡介

Google高級軟件工程師Brett Slatkin融閤自己多年Python開發實戰經驗,深入探討編寫高質量Python代碼的技巧、禁忌和最佳實踐。

涵蓋Python3.x和Python2.x主要應用領域,匯聚59條優秀實踐原則、開發技巧和便捷方案,包含大量實用範例代碼。

圖書目錄

本書贊譽
譯者序
前言
緻謝
第1章 用Pythonic方式來思考 1
第1條:確認自己所用的Python版本 1
第2條:遵循PEP 8風格指南 3
第3條:瞭解bytes、str與unicode的區彆 5
第4條:用輔助函數來取代復雜的錶達式 8
第5條:瞭解切割序列的辦法 10
第6條:在單次切片操作內,不要同時指定start、end和stride 13
第7條:用列錶推導來取代map和filter 15
第8條:不要使用含有兩個以上錶達式的列錶推導 16
第9條:用生成器錶達式來改寫數據量較大的列錶推導 18
第10條:盡量用enumerate取代range 20
第11條:用zip函數同時遍曆兩個迭代器 21
第12條:不要在for和while循環後麵寫else塊 23
第13條:閤理利用try/except/else/finally結構中的每個代碼塊 25
第2章 函數 28
第14條:盡量用異常來錶示特殊情況,而不要返迴None 28
第15條:瞭解如何在閉包裏使用外圍作用域中的變量 30
第16條:考慮用生成器來改寫直接返迴列錶的函數 35
第17條:在參數上麵迭代時,要多加小心 37
第18條:用數量可變的位置參數減少視覺雜訊 41
第19條:用關鍵字參數來錶達可選的行為 43
第20條:用None和文檔字符串來描述具有動態默認值的參數 46
第21條:用隻能以關鍵字形式指定的參數來確保代碼明晰 49
第3章 類與繼承 53
第22條:盡量用輔助類來維護程序的狀態,而不要用字典和元組 53
第23條:簡單的接口應該接受函數,而不是類的實例 58
第24條:以@classmethod形式的多態去通用地構建對象 62
第25條:用super初始化父類 67
第26條:隻在使用Mix-in組件製作工具類時進行多重繼承 71
第27條:多用public屬性,少用private屬性 75
第28條:繼承collections.abc以實現自定義的容器類型 79
第4章 元類及屬性 84
第29條:用純屬性取代get和set方法 84
第30條:考慮用@property來代替屬性重構 88
第31條:用描述符來改寫需要復用的@property方法 92
第32條:用__getattr__、__getattribute__和__setattr__實現按需生成的屬性 97
第33條:用元類來驗證子類 102
第34條:用元類來注冊子類 104
第35條:用元類來注解類的屬性 108
第5章 並發及並行 112
第36條:用subprocess模塊來管理子進程 113
第37條:可以用綫程來執行阻塞式I/O,但不要用它做平行計算 117
第38條:在綫程中使用Lock來防止數據競爭 121
第39條:用Queue來協調各綫程之間的工作 124
第40條:考慮用協程來並發地運行多個函數 131
第41條:考慮用concurrent.futures來實現真正的平行計算 141
第6章 內置模塊 145
第42條:用functools.wraps定義函數修飾器 145
第43條:考慮以contextlib和with語句來改寫可復用的try/finally代碼 148
第44條:用copyreg實現可靠的pickle操作 151
第45條:應該用datetime模塊來處理本地時間,而不是用time模塊 157
第46條:使用內置算法與數據結構 161
第47條:在重視精確度的場閤,應該使用decimal 166
第48條:學會安裝由Python開發者社區所構建的模塊 168
第7章 協作開發 170
第49條:為每個函數、類和模塊編寫文檔字符串 170
第50條:用包來安排模塊,並提供穩固的API 174
第51條:為自編的模塊定義根異常,以便將調用者與API相隔離 179
第52條:用適當的方式打破循環依賴關係 182
第53條:用虛擬環境隔離項目,並重建其依賴關係 187
第8章 部署 193
第54條:考慮用模塊級彆的代碼來配置不同的部署環境 193
第55條:通過repr字符串來輸齣調試信息 195
第56條:用unittest來測試全部代碼 198
第57條:考慮用pdb實現交互調試 201
第58條:先分析性能,然後再優化 203
第59條:用tracemalloc來掌握內存的使用及泄漏情況 208
· · · · · · (收起)

讀後感

評分

Item 24: Use @classmethod polymorphism to construct object generically 可以处理如何动态构建模型的问题。 Item 25: Use `super(__class__, self).__init__()` when inheriting Item 29: use plain attributes instead of getter and setters. Shortingcoming of @property...  

評分

Effective Python 59 SPECIFIC WAYS TO WRITE BETTER PYTHON 这本书终于读完了。从这本书里学到不少经验,以及之前忽略的知识。书中部分内容也是库的内容(这么说有失公允,大部分属都会有抄库文档的嫌疑的,因为文档包含了最多的信息),也有很多内容基本上是常识,比如七八章...  

評分

Item 24: Use @classmethod polymorphism to construct object generically 可以处理如何动态构建模型的问题。 Item 25: Use `super(__class__, self).__init__()` when inheriting Item 29: use plain attributes instead of getter and setters. Shortingcoming of @property...  

評分

Item 24: Use @classmethod polymorphism to construct object generically 可以处理如何动态构建模型的问题。 Item 25: Use `super(__class__, self).__init__()` when inheriting Item 29: use plain attributes instead of getter and setters. Shortingcoming of @property...  

評分

其他部分(并发, 模块, 部署)大部分都了解, 更愿意看一下 OOP 的想法. 在这里稍微记一下. 尽量使用异常来表示特殊情况, 而不要 return None 现在看, 有两种比较棘手的情况: (1) 有时候一个方法里涉及数个含网络请求(which means 必须考虑失败)的调用, 会写成这样: def call0(): ...  

用戶評價

评分

小弟翻譯的書,請大傢多多支持。

评分

差不多用三天過瞭一遍,幾乎每條都遇到過,需要時間的積纍纔能都遇全,有收獲

评分

小弟翻譯的書,請大傢多多支持。

评分

例子的設計和排版再加強一點就更好瞭~

评分

感覺之前寫的Python都是翔~

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有