圖靈教育 流暢的Python PSF研究員 知名PyCon演講者心血之作 全麵深入 對Python

圖靈教育 流暢的Python PSF研究員 知名PyCon演講者心血之作 全麵深入 對Python pdf epub mobi txt 電子書 下載 2025

LucianoRamalho 著
想要找書就要到 新城書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
店鋪: 人民郵電齣版社官方旗艦店
齣版社: 人民郵電齣版社
ISBN:9787115454157
商品編碼:12260063289
齣版時間:2017-05-01
頁數:628

具體描述


內容介紹

本書緻力於幫助Python開發人員挖掘這門語言及相關程序庫的優秀特性,避免重復勞動,同時寫齣簡潔、流暢、易讀、易維護,並且具有地道Python風格的代碼。本書尤其深入探討瞭Python語言的高級用法,涵蓋數據結構、Python風格的對象、並行與並發,以及元編程等不同的方麵。




作者介紹

Luciano Ramalho,從1998年起就成為瞭Python程序員。他是Python軟件基金會的成員,Python.pro.br(巴西的一傢培訓公司)的共同所有者,還是巴西DIYI個眾創空間Garoa Hacker Clube的聯閤創始人。他領導過多個軟件開發團隊,還在巴西的媒體、銀行和政府部門教授Python課程。



目錄

前言  xvii 

DIYI部分 序幕 

第1章 Python 數據模型  2 

1.1 一摞 Python 風格的紙牌  3 

1.2 如何使用特殊方法  6 

1.2.1 模擬數值類型  7 

1.2.2 字符串錶示形式  9 

1.2.3 算術運算符  10 

1.2.4 自定義的布爾值  10 

1.3 特殊方法一覽  10 

1.4 為什麼 len 不是普通方法  12 

1.5 本章小結  12 

1.6 延伸閱讀  13 

第二部分 數據結構 

第2章 序列構成的數組  16 

2.1 內置序列類型概覽  17 

2.2 列錶推導和生成器錶達式  18 

2.2.1 列錶推導和可讀性  18 

2.2.2 列錶推導同 filter 和 map 的比較  20 

2.2.3 笛卡兒積  20 

2.2.4 生成器錶達式  21 

2.3 元組不僅僅是不可變的列錶  22 

2.3.1 元組和記錄  23 

2.3.2 元組拆包  23 

2.3.3 嵌套元組拆包  25 

2.3.4 具名元組  26 

2.3.5 作為不可變列錶的元組  27 

2.4 切片  28 

2.4.1 為什麼切片和區間會忽略ZUI後一個元素  28 

2.4.2 對對象進行切片  29 

2.4.3 多維切片和省略  30 

2.4.4 給切片賦值  31 

2.5 對序列使用 + 和 *  31 

2.6 序列的增量賦值  33 

2.7  list.sort 方法和內置函數 sorted  36 

2.8 用 bisect 來管理已排序的序列  37 

2.8.1 用 bisect 來搜索  38 

2.8.2 用 bisect.insort 插入新元素  40 

2.9 當列錶不是shouxuan時  41 

2.9.1 數組  41 

2.9.2 內存視圖  44 

2.9.3 NumPy 和 SciPy  45 

2.9.4 雙嚮隊列和其他形式的隊列  47 

2.10 本章小結  49 

2.11 延伸閱讀  50 

第3章 字典和集閤  54 

3.1 泛映射類型  54 

3.2 字典推導  56 

3.3 常見的映射方法  57 

3.4 映射的彈性鍵查詢  61 

3.4.1  defaultdict :處理找不到的鍵的一個選擇  61 

3.4.2 特殊方法 __missing__  62 

3.5 字典的變種  65 

3.6 子類化 UserDict  65 

3.7 不可變映射類型  67 

3.8 集閤論  68 

3.8.1 集閤字麵量  69 

3.8.2 集閤推導  71 

3.8.3 集閤的操作  71 

3.9  dict 和 set 的背後  73 

3.9.1 一個關於效率的實驗  74 

3.9.2 字典中的散列錶  75 

3.9.3  dict 的實現及其導緻的結果  78 

3.9.4  set 的實現以及導緻的結果  80 

3.10 本章小結  80 

3.11 延伸閱讀  81 

第4章 文本和字節序列  83 

4.1 字符問題  84 

4.2 字節概要  85 

4.3 基本的編解碼器  88 

4.4 瞭解編解碼問題  89 

4.4.1 處理 UnicodeEncodeError  90 

4.4.2 處理 UnicodeDecodeError  90 

4.4.3 使用預期之外的編碼加載模塊時拋齣的 SyntaxError  91 

4.4.4 如何找齣字節序列的編碼  92 

4.4.5 BOM:有用的鬼符  93 

4.5 處理文本文件  94 

4.6 為瞭正確比較而規範化 Unicode 字符串  99 

4.6.1 大小寫摺疊  101 

4.6.2 規範化文本匹配實用函數  102 

4.6.3 極端“規範化”:去掉變音符號  103 

4.7 Unicode 文本排序  105 

4.8 Unicode 數據庫  108 

4.9 支持字符串和字節序列的雙模式 API  109 

4.9.1 正則錶達式中的字符串和字節序列  109 

4.9.2  os 函數中的字符串和字節序列  111 

4.10 本章小結  112 

4.11 延伸閱讀  113 

第三部分 把函數視作對象 

第5章 一等函數  118 

5.1 把函數視作對象  119 

5.2 高階函數  120 

5.3 匿名函數  122 

5.4 可調用對象  122 

5.5 用戶定義的可調用類型  123 

5.6 函數內省  124 

5.7 從定位參數到僅限關鍵字參數  126 

5.8 獲取關於參數的信息  127 

5.9 函數注解  131 

5.10 支持函數式編程的包  132 

5.10.1  operator 模塊  132 

5.10.2 使用 functools.partial 凍結參數  135 

5.11 本章小結  137 

5.12 延伸閱讀  137 

第6章 使用一等函數實現設計模式  141 

6.1 案例分析:重構“策略”模式  142 

6.1.1 經典的“策略”模式  142 

6.1.2 使用函數實現“策略”模式  145 

6.1.3 選擇ZUI佳策略:簡單的方式  148 

6.1.4 找齣模塊中的全部策略  149 

6.2 “命令”模式  150 

6.3 本章小結  151 

6.4 延伸閱讀  152 

第7章 函數裝飾器和閉包  154 

7.1 裝飾器基礎知識  155 

7.2 Python 何時執行裝飾器  156 

7.3 使用裝飾器改進“策略”模式  157 

7.4 變量作用域規則  159 

7.5 閉包  161 

7.6  nonlocal 聲明  164 

7.7 實現一個簡單的裝飾器  165 

7.8 標準庫中的裝飾器  168 

7.8.1 使用 functools.lru_cache 做備忘  168 

7.8.2 單分派泛函數  170 

7.9 疊放裝飾器  172 

7.10 參數化裝飾器  173 

7.10.1 一個參數化的注冊裝飾器  173 

7.10.2 參數化 clock 裝飾器  175 

7.11 本章小結  177 

7.12 延伸閱讀  178 

第四部分 麵嚮對象慣用法 

第8章 對象引用、可變性和垃圾迴收  182 

8.1 變量不是盒子  183 

8.2 標識、相等性和彆名  184 

8.2.1 在 == 和 is 之間選擇  185 

8.2.2 元組的相對不可變性  186 

8.3 默認做淺復製  187 

8.4 函數的參數作為引用時  190 

8.4.1 不要使用可變類型作為參數的默認值  191 

8.4.2 防禦可變參數  193 

8.5  del 和垃圾迴收  195 

8.6 弱引用  196 

8.6.1  WeakValueDictionary 簡介  197 

8.6.2 弱引用的局限  199 

8.7 Python 對不可變類型施加的把戲  199 

8.8 本章小結  201 

8.9 延伸閱讀  201 

第9章 符閤 Python 風格的對象  205 

9.1 對象錶示形式  206 

9.2 再談嚮量類  206 

9.3 備選構造方法  208 

9.4  classmethod 與 staticmethod  209 

9.5 格式化顯示  210 

9.6 可散列的 Vector2d  213 

9.7 Python 的私有屬性和“受保護的”屬性  218 

9.8 使用 __slots__ 類屬性節省空間  220 

9.9 覆蓋類屬性  222 

9.10 本章小結  224 

9.11 延伸閱讀  225 

第10章 序列的修改、散列和切片  229 

10.1  Vector 類:用戶定義的序列類型  230 

10.2  Vector 類第1 版:與 Vector2d 類兼容  230 

10.3 協議和鴨子類型  232 

10.4  Vector 類第2 版:可切片的序列  233 

10.4.1 切片原理  234 

10.4.2 能處理切片的 __getitem__ 方法  236 

10.5  Vector 類第3 版:動態存取屬性  237 

10.6  Vector 類第4 版:散列和快速等值測試  240 

10.7  Vector 類第5 版:格式化  244 

10.8 本章小結  251 

10.9 延伸閱讀  251 

第11章 接口:從協議到抽象基類  256 

11.1 Python 文化中的接口和協議  257 

11.2 Python 喜歡序列  258 

11.3 使用猴子補丁在運行時實現協議  260 

11.4 Alex Martelli 的水禽  262 

11.5 定義抽象基類的子類  266 

11.6 標準庫中的抽象基類  267 

11.6.1  collections.abc 模塊中的抽象基類  267 

11.6.2 抽象基類的數字塔  269 

11.7 定義並使用一個抽象基類  270 

11.7.1 抽象基類句法詳解  273 

11.7.2 定義 Tombola 抽象基類的子類  274 

11.7.3  Tombola 的虛擬子類  276 

11.8  Tombola 子類的測試方法  278 

11.9 Python 使用 register 的方式  281 

11.10 鵝的行為有可能像鴨子  281 

11.11 本章小結  283 

11.12 延伸閱讀  284 

第12章 繼承的優缺點  289 

12.1 子類化內置類型很麻煩  289 

12.2 多重繼承和方法解析順序  292 

12.3 多重繼承的真實應用  296 

12.4 處理多重繼承  298 

12.5 一個現代示例:Django 通用視圖中的混入  301 

12.6 本章小結  304 

12.7 延伸閱讀  304 

第13章 正確重載運算符  307 

13.1 運算符重載基礎  308 

13.2 一元運算符  308 

13.3 重載嚮量加法運算符 +  310 

13.4 重載標量乘法運算符 *  315 

13.5 眾多比較運算符  318 

13.6 增量賦值運算符  321 

13.7 本章小結  325 

13.8 延伸閱讀  326 

第五部分 控製流程 

第14章 可迭代的對象、迭代器和生成器  330 

14.1  Sentence 類第1 版:單詞序列  331 

14.2 可迭代的對象與迭代器的對比  334 

14.3  Sentence 類第2 版:典型的迭代器  337 

14.4  Sentence 類第3 版:生成器函數  339 

14.5  Sentence 類第4 版:惰性實現  343 

14.6  Sentence 類第5 版:生成器錶達式  344 

14.7 何時使用生成器錶達式  345 

14.8 另一個示例:等差數列生成器  346 

14.9 標準庫中的生成器函數  349 

14.10 Python  3.3 中新齣現的句法: yield from  357 

14.11 可迭代的歸約函數  358 

14.12 深入分析 iter 函數  359 

14.13 案例分析:在數據庫轉換工具中使用生成器  360 

14.14 把生成器當成協程  362 

14.15 本章小結  362 

14.16 延伸閱讀  363 

第15章 上下文管理器和 else 塊  368 

15.1 先做這個,再做那個: if 語句之外的 else 塊  369 

15.2 上下文管理器和 with 塊  370 

15.3  contextlib 模塊中的實用工具  374 

15.4 使用 @contextmanager  375 

15.5 本章小結  378 

15.6 延伸閱讀  378 

第16章 協程  381 

16.1 生成器如何進化成協程  382 

16.2 用作協程的生成器的基本行為  382 

16.3 示例:使用協程計算移動平均值  385 

16.4 預激協程的裝飾器  386 

16.5 終止協程和異常處理  388 

16.6 讓協程返迴值  391 

16.7 使用 yield from  393 

16.8  yield from 的意義  398 

16.9 使用案例:使用協程做離散事件仿真  403 

16.9.1 離散事件仿真簡介  403 

16.9.2 齣租車隊運營仿真  404 

16.10 本章小結  410 

16.11 延伸閱讀  411 

第17章 使用期物處理並發  416 

17.1 示例:網絡下載的三種風格  416 

17.1.1 依序下載的腳本  418 

17.1.2 使用 concurrent.futures 模塊下載  420 

17.1.3 期物在哪裏  421 

17.2 阻塞型 I/O 和 GIL  424 

17.3 使用 concurrent.futures 模塊啓動進程  424 

17.4 實驗 Executor.map 方法  426 

17.5 顯示下載進度並處理錯誤  429 

17.5.1  flags2 係列示例處理錯誤的方式  433 

17.5.2 使用 futures.as_completed 函數  435 

17.5.3 綫程和多進程的替代方案  437 

17.6 本章小結  437 

17.7 延伸閱讀  438 

第18章 使用 asyncio 包處理並發  442 

18.1 綫程與協程對比  443 

18.1.1  asyncio.Future :故意不阻塞  448 

18.1.2 從期物、任務和協程中産齣  449 

18.2 使用 asyncio 和 aiohttp 包下載  450 

18.3 避免阻塞型調用  454 

18.4 改進 asyncio 下載腳本  456 

18.4.1 使用 asyncio.as_completed 函數  456 

18.4.2 使用 Executor 對象,防止阻塞事件循環  461 

18.5 從迴調到期物和協程  462 

18.6 使用 asyncio 包編寫服務器  466 

18.6.1 使用 asyncio 包編寫 TCP 服務器  467 

18.6.2 使用 aiohttp 包編寫 Web 服務器  471 

18.6.3 更好地支持並發的智能客戶端  474 

18.7 本章小結  475 

18.8 延伸閱讀  476 

第六部分 元編程 

第19章 動態屬性和特性  482 

19.1 使用動態屬性轉換數據  483 

19.1.1 使用動態屬性訪問 JSON 類數據  485 

19.1.2 處理無效屬性名  487 

19.1.3 使用 __new__ 方法以靈活的方式創建對象  488 

19.1.4 使用 shelve 模塊調整 OSCON 數據源的結構  490 

19.1.5 使用特性獲取鏈接的記錄  493 

19.2 使用特性驗證屬性  498 

19.2.1  LineItem 類第1 版:錶示訂單中商品的類  498 

19.2.2  LineItem 類第2 版:能驗證值的特性  499 

19.3 特性全解析  500 

19.3.1 特性會覆蓋實例屬性  501 

19.3.2 特性的文檔  503 

19.4 定義一個特性工廠函數  504 

19.5 處理屬性刪除操作  506 

19.6 處理屬性的重要屬性和函數  507 

19.6.1 影響屬性處理方式的特殊屬性  507 

19.6.2 處理屬性的內置函數  508 

19.6.3 處理屬性的特殊方法  509 

19.7 本章小結  510 

19.8 延伸閱讀  510 

第20章 屬性描述符  514 

20.1 描述符示例:驗證屬性  514 

20.1.1  LineItem 類第3 版:一個簡單的描述符  515 

20.1.2  LineItem 類第4 版:自動獲取儲存屬性的名稱  519 

20.1.3  LineItem 類第5 版:一種新型描述符  524 

20.2 覆蓋型與非覆蓋型描述符對比  526 

20.2.1 覆蓋型描述符  528 

20.2.2 沒有 __get__ 方法的覆蓋型描述符  529 

20.2.3 非覆蓋型描述符  530 

20.2.4 在類中覆蓋描述符  531 

20.3 方法是描述符  531 

20.4 描述符用法建議  533 

20.5 描述符的文檔字符串和覆蓋刪除操作  534 

20.6 本章小結  535 

20.7 延伸閱讀  536 

第21章 類元編程  538 

21.1 類工廠函數  539 

21.2 定製描述符的類裝飾器  541 

21.3 導入時和運行時比較  543 

21.4 元類基礎知識  547 

21.5 定製描述符的元類  552 

21.6 元類的特殊方法 __prepare__  554 

21.7 類作為對象  556 

21.8 本章小結  557 

21.9 延伸閱讀  557 

結語  560 

附錄 A 輔助腳本  563 

Python 術語錶  588 

作者簡介  600 

關於封麵  600 

 




用戶評價

評分

評分

評分

評分

評分

評分

評分

評分

評分

相關圖書

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

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有