1. <th id="ysuv9"></th>

      流暢的Python

      流暢的Python
      分享
      掃描下方二維碼分享到微信
      打開微信,點擊右上角”+“,
      使用”掃一掃“即可將網頁分享到朋友圈。
      作者: ,
      2017-05
      版次: 1
      ISBN: 9787115454157
      定價: 139.00
      裝幀: 平裝
      開本: 16開
      紙張: 膠版紙
      1308人買過
      •   本書致力于幫助Python開發人員挖掘這門語言及相關程序庫的優秀特性,避免重復勞動,同時寫出簡潔、流暢、易讀、易維護,并且具有地道Python風格的代碼。本書尤其深入探討了Python語言的高級用法,涵蓋數據結構、Python風格的對象、并行與并發,以及元編程等不同的方面。

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

          安道,專注于現代計算機技術的自由翻譯,譯有《Flask Web 開發》《Python 網絡編程攻略》《Ruby on Rails 教程》等書。

          吳珂,現為Airbnb公司軟件工程師,所在團隊主要負責開發和維護各類可伸縮、高性能服務,并在Airbnb內推廣面向服務的系統架構。在分布式系統、云存儲服務和跨平臺SDK開發,以及大規模數據處理等方面有多年經驗。
        前言  xvii  
        第一部分 序幕  
        第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.3 元組不僅僅是不可變的列表  22  
        2.4 切片  28  
        2.5 對序列使用 + 和 *  31  
        2.6 序列的增量賦值  33  
        2.7  list.sort 方法和內置函數 sorted  36  
        2.8 用 bisect 來管理已排序的序列  37  
        2.9 當列表不是首選時  41  
        2.10 本章小結  49  
        2.11 延伸閱讀  50  
        第3章 字典和集合  54  
        3.1 泛映射類型  54  
        3.2 字典推導  56  
        3.3 常見的映射方法  57  
        3.4 映射的彈性鍵查詢  61  
        3.5 字典的變種  65  
        3.6 子類化 UserDict  65  
        3.7 不可變映射類型  67  
        3.8 集合論  68  
        3.9  dict 和 set 的背后  73  
        3.10 本章小結  80  
        3.11 延伸閱讀  81  
        第4章 文本和字節序列  83  
        4.1 字符問題  84  
        4.2 字節概要  85  
        4.3 基本的編解碼器  88  
        4.4 了解編解碼問題  89  
        4.5 處理文本文件  94  
        4.6 為了正確比較而規范化 Unicode 字符串  99  
        4.7 Unicode 文本排序  105  
        4.8 Unicode 數據庫  108  
        4.9 支持字符串和字節序列的雙模式 API  109  
        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.11 本章小結  137  
        5.12 延伸閱讀  137  
        第6章 使用一等函數實現設計模式  141  
        6.1 案例分析:重構“策略”模式  142  
        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.9 疊放裝飾器  172  
        7.10 參數化裝飾器  173  
        7.11 本章小結  177  
        7.12 延伸閱讀  178  
        第四部分 面向對象慣用法  
        第8章 對象引用、可變性和垃圾回收  182  
        8.1 變量不是盒子  183  
        8.2 標識、相等性和別名  184  
        8.3 默認做淺復制  187  
        8.4 函數的參數作為引用時  190  
        8.5  del 和垃圾回收  195  
        8.6 弱引用  196  
        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.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.7 定義并使用一個抽象基類  270  
        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.10 本章小結  410  
        16.11 延伸閱讀  411  
        第17章 使用期物處理并發  416  
        17.1 示例:網絡下載的三種風格  416  
        17.2 阻塞型 I/O 和 GIL  424  
        17.3 使用 concurrent.futures 模塊啟動進程  424  
        17.4 實驗 Executor.map 方法  426  
        17.5 顯示下載進度并處理錯誤  429  
        17.6 本章小結  437  
        17.7 延伸閱讀  438  
        第18章 使用 asyncio 包處理并發  442  
        18.1 線程與協程對比  443  
        18.2 使用 asyncio 和 aiohttp 包下載  450  
        18.3 避免阻塞型調用  454  
        18.4 改進 asyncio 下載腳本  456  
        18.5 從回調到期物和協程  462  
        18.6 使用 asyncio 包編寫服務器  466  
        18.7 本章小結  475  
        18.8 延伸閱讀  476  
        第六部分 元編程  
        第19章 動態屬性和特性  482  
        19.1 使用動態屬性轉換數據  483  
        19.2 使用特性驗證屬性  498  
        19.3 特性全解析  500  
        19.4 定義一個特性工廠函數  504  
        19.5 處理屬性刪除操作  506  
        19.6 處理屬性的重要屬性和函數  507  
        19.7 本章小結  510  
        19.8 延伸閱讀  510  
        第20章 屬性描述符  514  
        20.1 描述符示例:驗證屬性  514  
        20.2 覆蓋型與非覆蓋型描述符對比  526  
        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 
      • 內容簡介:
          本書致力于幫助Python開發人員挖掘這門語言及相關程序庫的優秀特性,避免重復勞動,同時寫出簡潔、流暢、易讀、易維護,并且具有地道Python風格的代碼。本書尤其深入探討了Python語言的高級用法,涵蓋數據結構、Python風格的對象、并行與并發,以及元編程等不同的方面。

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

          安道,專注于現代計算機技術的自由翻譯,譯有《Flask Web 開發》《Python 網絡編程攻略》《Ruby on Rails 教程》等書。

          吳珂,現為Airbnb公司軟件工程師,所在團隊主要負責開發和維護各類可伸縮、高性能服務,并在Airbnb內推廣面向服務的系統架構。在分布式系統、云存儲服務和跨平臺SDK開發,以及大規模數據處理等方面有多年經驗。
      • 目錄:
        前言  xvii  
        第一部分 序幕  
        第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.3 元組不僅僅是不可變的列表  22  
        2.4 切片  28  
        2.5 對序列使用 + 和 *  31  
        2.6 序列的增量賦值  33  
        2.7  list.sort 方法和內置函數 sorted  36  
        2.8 用 bisect 來管理已排序的序列  37  
        2.9 當列表不是首選時  41  
        2.10 本章小結  49  
        2.11 延伸閱讀  50  
        第3章 字典和集合  54  
        3.1 泛映射類型  54  
        3.2 字典推導  56  
        3.3 常見的映射方法  57  
        3.4 映射的彈性鍵查詢  61  
        3.5 字典的變種  65  
        3.6 子類化 UserDict  65  
        3.7 不可變映射類型  67  
        3.8 集合論  68  
        3.9  dict 和 set 的背后  73  
        3.10 本章小結  80  
        3.11 延伸閱讀  81  
        第4章 文本和字節序列  83  
        4.1 字符問題  84  
        4.2 字節概要  85  
        4.3 基本的編解碼器  88  
        4.4 了解編解碼問題  89  
        4.5 處理文本文件  94  
        4.6 為了正確比較而規范化 Unicode 字符串  99  
        4.7 Unicode 文本排序  105  
        4.8 Unicode 數據庫  108  
        4.9 支持字符串和字節序列的雙模式 API  109  
        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.11 本章小結  137  
        5.12 延伸閱讀  137  
        第6章 使用一等函數實現設計模式  141  
        6.1 案例分析:重構“策略”模式  142  
        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.9 疊放裝飾器  172  
        7.10 參數化裝飾器  173  
        7.11 本章小結  177  
        7.12 延伸閱讀  178  
        第四部分 面向對象慣用法  
        第8章 對象引用、可變性和垃圾回收  182  
        8.1 變量不是盒子  183  
        8.2 標識、相等性和別名  184  
        8.3 默認做淺復制  187  
        8.4 函數的參數作為引用時  190  
        8.5  del 和垃圾回收  195  
        8.6 弱引用  196  
        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.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.7 定義并使用一個抽象基類  270  
        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.10 本章小結  410  
        16.11 延伸閱讀  411  
        第17章 使用期物處理并發  416  
        17.1 示例:網絡下載的三種風格  416  
        17.2 阻塞型 I/O 和 GIL  424  
        17.3 使用 concurrent.futures 模塊啟動進程  424  
        17.4 實驗 Executor.map 方法  426  
        17.5 顯示下載進度并處理錯誤  429  
        17.6 本章小結  437  
        17.7 延伸閱讀  438  
        第18章 使用 asyncio 包處理并發  442  
        18.1 線程與協程對比  443  
        18.2 使用 asyncio 和 aiohttp 包下載  450  
        18.3 避免阻塞型調用  454  
        18.4 改進 asyncio 下載腳本  456  
        18.5 從回調到期物和協程  462  
        18.6 使用 asyncio 包編寫服務器  466  
        18.7 本章小結  475  
        18.8 延伸閱讀  476  
        第六部分 元編程  
        第19章 動態屬性和特性  482  
        19.1 使用動態屬性轉換數據  483  
        19.2 使用特性驗證屬性  498  
        19.3 特性全解析  500  
        19.4 定義一個特性工廠函數  504  
        19.5 處理屬性刪除操作  506  
        19.6 處理屬性的重要屬性和函數  507  
        19.7 本章小結  510  
        19.8 延伸閱讀  510  
        第20章 屬性描述符  514  
        20.1 描述符示例:驗證屬性  514  
        20.2 覆蓋型與非覆蓋型描述符對比  526  
        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 
      查看詳情
      相關圖書 / 更多
      偷窥丶偷拍丶妓女丶自由