幫助中心 | 我的帳號 | 關於我們

Effective Python(編寫好Python的90個有效方法第2版英文版)

  • 作者:(美)布雷特·斯拉特金|責編:蔣艷
  • 出版社:人民郵電
  • ISBN:9787115634061
  • 出版日期:2024/03/01
  • 裝幀:平裝
  • 頁數:434
人民幣:RMB 128 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書是Effective Python的第2版,基於Python 3進行了全面升級。本書分為10章,包含90個條目,形式簡潔、表述準確。每個條目都基於對Python的獨到見解,告訴讀者如何高效地編寫Python程序。與第1版相比,第2版只關注Python 3,而不再兼顧Python 2。根據Python語言引入的新特性,以及Python開發者所形成的新經驗,對第1版中的某些思路與解決方案進行了修訂,以更好地發揮Python的優勢。本書刪除了過時的知識點,並添加了對Python新特性的一些介紹。新版中增加了31個條目,並專門設立了幾章來強調列表和字典、推導和生成器、元類和屬性、穩定性和性能,以及測試和調試等重要主題。
    建議讀者在閱讀本書之前應對Python語言有初步的了解。對於有一定經驗的開發者以及對Python編程感興趣的讀者,本書可以幫助其更深入地理解Python語言,以成為更卓越、高效的Python開發者。

作者介紹
(美)布雷特·斯拉特金|責編:蔣艷
    布雷特·斯拉特金(Brett Slatkin),GooqIe公司高級軟體工程師。他是Google消費者調查項目的工程主管及聯合創始人,曾從事Google App Engine的Python基礎架構工作,並利用Python來管理眾多的Google伺服器。Slatkin也是PubSubHubbub協議的聯合創始人,還用Python為GoogIe實現了針對該協議的系統。他擁有哥倫比亞大學電腦工程專業學士學位。

目錄
第1章  Pythonic思維
  條目1:查詢自己使用的Python版本
  條目2:遵循PEP 8風格指南
  條目3:了解bytes和str之間的區別
  條目4:使用支持插值的f-string取代C風格的格式化字元串和str.format
  條目5:使用輔助函數取代複雜表達式
  條目6:把數據結構直接拆分到多個變數里,避免通過下標訪問
  條目7:盡量用enumerate取代range
  條目8:使用zip並行處理迭代器
  條目9:避免在for和while循環后使用else塊
  條目10:使用賦值表達式減少重複代碼
第2章  列表和字典
  條目11:學會對序列做切片
  條目12:避免在切片里同時指定起止下標和步進
  條目13:通過帶星號的unpacking操作來捕獲多個元素,避免用切片
  條目14:使用sort方法的key參數表示複雜的排序邏輯
  條目15:不要過分依賴給dict添加條目時所用的順序
  條目16:使用get處理鍵不在字典中的情況,避免使用in與KeyError
  條目17:使用defaultdict處理內部狀態中觖失的元素,而避免使用setdefault
  條目18:學會使用_missing_構建依賴鍵的默認值
第3章  函數
  條目19:避免把函數返回的多個數值拆分到3個以上的變數中
  條目20:遇到意外狀況時應該拋出異常,而不是返回None
  條目21:了解如何在閉包裡面使用外圍作用域中的變數
  條目22:使用數量可變的位置參數給函數設計清晰的參數列表
  條目23:使用關鍵字參數表示可選行為
  條目24:使用None和文檔字元串描述默認值會變的參數
  條目25:使用只能以關鍵字指定和只能按位置傳入的參數來設計清晰的參數列表
  條目26:使用functools.wraps定義函數修飾器
第4章  推導和生成器
  條目27:使用推導取代map和filter
  條目28:在推導中避免超過兩個控制子表達式
  條目29:使用賦值表達式在推導中避免重複代碼
  條目30:考慮使用生成器而不是返回列表
  條目31:謹慎地迭代函數所收到的參數
  條目32:考慮使用生成器表達式來進行大型列表推導的組合
  條目33:使用yield from組合多個生成器
  條目34:避免使用send向生成器注入數據
  條目35:避免通過throw變換生成器的狀態
  條目36:考慮使用itertools處理迭代器和生成器
第5章  類和介面
  條目37:使用組合起來的類來實現多層結構,避免用嵌套的內置類型
  條目38:接受函數而不是類來實現簡單介面
  條目39:通過@classmethod多態來構建同一體系中的各類對象
  條目40:使用super初始化超類
  條目41:考慮使用混合類來組合功能
  條目42:優先考慮使用共有屬性表示應受保護的數據,避免使用私有屬性表示
  條目43:使用collections.abc繼承自定義容器類型
第6章  元類和屬性
  條目44:使用純屬性而不是setter和getter方法

  條目45:考慮使用Gproperty而不是重構屬性
  條目46:使用描述符來改寫需要復用的Eproperty方法
  條目47:使用_getattr_、_getattribute_和_setattr_處理惰性屬性
  條目48:使用_init_subclass_驗證子類
  條目49:使用_init_subclass_記錄現有的子類
  條目50:使用_set_name_註釋類屬性
  條目51:使用類修飾器而不是元類來實現可組合的類擴展
第7章  併發和並行
  條目52:使用subprocess管理子進程
  條目53:使用線程處理阻塞I/O,但避免使用它做並行計算
  條目54:使用Lock避免線程中的數據競爭
  條目55:使用Queue協調線程間的工作
  條目56:學會判斷何時需要併發
  條目57:避免為按需分發創建新的Thread實例
  條目58:學會正確地重構代碼,以便用Queue做併發
  條目59:在需要併發時考慮ThreadPoolExecutor
  條目60:使用協程實現高併發I/O
  條目61:了解如何將基於線程的I/O移植到asyncio
  條目62:混合使用線程和協程以便過渡到asyncio
  條目63:避免阻塞asyncio事件循環以最大化程序的響應能力
  條目64:考慮concurrent.futures以實現真正的並行計算
第8章  穩定性和性能
  條目65:充分利用try/except/else/finally結構中的每個代碼塊
  條目66:考慮使用contextlib和with語句來改寫可復用的try/finally代碼
  條目67:使用datetime模塊而不是time模塊處理本地時間
  條目68:使用copyreg實現可靠的pickle操作
  條目69:在需要準確計算時使用decimal表示相應的數值
  條目70:在優化之前進行性能分析
  條目71:優先考慮使用deque實現生產者-消費者隊列
  條目72:考慮使用bisect搜索排序序列
  條目73:學會使用heapq製作優先順序隊列
  條目74:考慮使用memoryview和bytearray來實現無須拷貝的bytes操作
第9章  測試和調試
  條目75:使用repr字元串輸出調試信息
  條目76:通過TestCase子類驗證相關行為
  條目77:使用setUp、tearDown、setUpModule和tearDownModule將測試隔離開
  條目78:使用Mock來模擬受測代碼所依賴的複雜函數
  條目79:封裝依賴關係以便於模擬和測試
  條目80:考慮使用pdb進行互動式調試
  條目81:使用tracemalloc了解內存使用和泄漏情況
第10章  協作開發
  條目82:學會尋找由其他Python開發者所構建的模塊
  條目83:使用虛擬環境隔離環境,並重建依賴關係
  條目84:為每個函數、類和模塊編寫文檔字元串
  條目85:使用包來組織模塊並提供穩定的API
  條目86:考慮使用模塊級別的代碼來配置不同的部署環境
  條目87:使用根異常來隔離調用者與API
  條目88:了解如何打破循環依賴關係
  條目89:考慮使用warnings來重構和遷移用法
  條目90:考慮使用typing做靜態分析來消除錯誤

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032