三级一区在线视频先锋_丁香另类激情小说_中文字幕一区二区三_一本一道久久a久久精品综合蜜臀_一区二区三区四区国产精品_日韩**一区毛片_在线观看日韩电影_1000部国产精品成人观看_免费不卡在线视频_亚洲国产日日夜夜_国产亚洲精品福利_亚洲精品一区二区三区在线观看_欧美美女一区二区三区_日韩欧美色电影_欧美aaa在线_久久这里只有精品6

讀書月攻略拿走直接抄!
歡迎光臨中圖網 請 | 注冊
> >>
EFFECTIVE PYTHON:編寫好PYTHON的90個有效方法(第2版 英文版)

包郵 EFFECTIVE PYTHON:編寫好PYTHON的90個有效方法(第2版 英文版)

出版社:人民郵電出版社出版時間:2024-03-01
開本: 16開 頁數: 434
中 圖 價:¥90.9(7.1折) 定價  ¥128.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

EFFECTIVE PYTHON:編寫好PYTHON的90個有效方法(第2版 英文版) 版權信息

EFFECTIVE PYTHON:編寫好PYTHON的90個有效方法(第2版 英文版) 本書特色

Python編程進階一定要讀的書

Google的Principal Software Engineer——Brett latkin撰寫

基于Python3.8,新增31條建議

掌握Pythonic編程方式,寫出高質量代碼

進階到編程高手的程序員修煉之道和代碼整潔之道

EFFECTIVE PYTHON:編寫好PYTHON的90個有效方法(第2版 英文版) 內容簡介

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

EFFECTIVE PYTHON:編寫好PYTHON的90個有效方法(第2版 英文版) 目錄

目錄

Chapter 1 Pythonic Thinking / 第 1 章 Pythonic 思維 1

Item 1: Know Which Version of Python You’re Using /

條目 1:查詢自己使用的 Python 版本 1

Item 2: Follow the PEP 8 Style Guide /

條目 2:遵循 PEP 8 風格指南 2

Item 3: Know the Differences Between bytes and str /

條目 3:了解 bytes 和 str 之間的區別 5

Item 4: Prefer Interpolated F-Strings Over C-style Format Strings and str.format /

條目 4:使用支持插值的 f-string 取代 C 風格的格式化字符串和str.format 11

Item 5: Write Helper Functions Instead of Complex Expressions /

條目 5:使用輔助函數取代復雜表達式 21

Item 6: Prefer Multiple Assignment Unpacking Over Indexing /

條目 6:把數據結構直接拆分到多個變量里,避免通過下標訪問 24

Item 7: Prefer enumerate Over range /

條目 7:盡量用 enumerate 取代 range 28

Item 8: Use zip to Process Iterators in Parallel /

條目 8:使用 zip 并行處理迭代器 30

Item 9: Avoid else Blocks After for and while Loops /

條目 9:避免在 for 和 while 循環后使用 else 塊 32

Item 10: Prevent Repetition with Assignment Expressions /

條目 10:使用賦值表達式減少重復代碼 35

Chapter 2 Lists and Dictionaries / 第 2 章 列表和字典 43

Item 11: Know How to Slice Sequences /

條目 11:學會對序列做切片 43

Item 12: Avoid Striding and Slicing in a Single Expression /

條目 12:避免在切片里同時指定起止下標和步進 46

Item 13: Prefer Catch-All Unpacking Over Slicing /

條目 13:通過帶星號的 unpacking 操作來捕獲多個元素,避免用切片 48

Item 14: Sort by Complex Criteria Using the key Parameter /

條目 14:使用 sort 方法的 key 參數表示復雜的排序邏輯 52

Item 15: Be Cautious When Relying on dict Insertion Ordering /

條目 15:不要過分依賴給 dict 添加條目時所用的順序 58

Item 16: Prefer get Over in and KeyError to Handle Missing Dictionary Keys /

條目 16:使用 get 處理鍵不在字典中的情況,避免使用 in 與 KeyError 65

Item 17: Prefer defaultdict Over setdefault to Handle Missing Items in Internal State /

條目 17:使用 defaultdict 處理內部狀態中缺失的元素,而避免使用setdefault 70

Item 18: Know How to Construct Key-Dependent Default Values with __missing__ /

條目 18:學會使用__missing__構建依賴鍵的默認值 73

Chapter 3 Functions / 第 3 章 函數 77

Item 19: Never Unpack More Than Three Variables When Functions Retur Multiple Values /

條目 19:避免把函數返回的多個數值拆分到 3 個以上的變量中 77

Item 20: Prefer Raising Exceptions to Returning None /

條目 20:遇到意外狀況時應該拋出異常,而不是返回 None 80

Item 21: Know How Closures Interact with Variable Scope /

條目 21:了解如何在閉包里面使用外圍作用域中的變量 83

Item 22: Reduce Visual Noise with Variable Positional Arguments /

條目 22:使用數量可變的位置參數給函數設計清晰的參數列表 87

Item 23: Provide Optional Behavior with Keyword Arguments /

條目 23:使用關鍵字參數表示可選行為 90

Item 24: Use None and Docstrings to Specify Dynamic Default Arguments /

條目 24:使用 None 和文檔字符串描述默認值會變的參數 94

Item 25: Enforce Clarity with Keyword-Only and Positional-Only Arguments /

條目 25:使用只能以關鍵字指定和只能按位置傳入的參數來設計清晰的參數列表 97

Item 26: Define Function Decorators with functools.wraps /

條目 26:使用 functools.wraps 定義函數修飾器 102

Chapter 4 Comprehensions and Generators / 第 4 章 推導和生成器 107

Item 27: Use Comprehensions Instead of map and filter /

條目 27:使用推導取代 map 和 filter 107

Item 28: Avoid More Than Two Control Subexpressions in Comprehensions /

條目 28:在推導中避免超過兩個控制子表達式 109

Item 29: Avoid Repeated Work in Comprehensions by Using Assignment Expressions /

條目 29:使用賦值表達式在推導中避免重復代碼 111

Item 30: Consider Generators Instead of Returning Lists /

條目 30:考慮使用生成器而不是返回列表 114

Item 31: Be Defensive When Iterating Over Arguments /

條目 31:謹慎地迭代函數所收到的參數 117

Item 32: Consider Generator Expressions for Large List Comprehensions /

條目 32:考慮使用生成器表達式來進行大型列表推導的組合 122

Item 33: Compose Multiple Generators with yield from /

條目 33:使用 yield from 組合多個生成器 124

Item 34: Avoid Injecting Data into Generators with send /

條目 34:避免使用 send 向生成器注入數據 127

Item 35: Avoid Causing State Transitions in Generators with throw /

條目 35:避免通過 throw 變換生成器的狀態 133

Item 36: Consider itertools for Working with Iterators and Generators /

條目 36:考慮使用 itertools 處理迭代器和生成器 138

Chapter 5 Classes and Interfaces / 第 5 章 類和接口 145

Item 37: Compose Classes Instead of Nesting Many Levels of Built-in Types /

條目 37:使用組合起來的類來實現多層結構,避免用嵌套的內置類型 145

Item 38: Accept Functions Instead of Classes for Simple Interfaces /

條目 38:接受函數而不是類來實現簡單接口 152

Item 39: Use @classmethod Polymorphism to Construct Objects Generically /

條目 39:通過@classmethod 多態來構建同一體系中的各類對象 155

Item 40: Initialize Parent Classes with super /

條目 40:使用 super 初始化超類 160

Item 41: Consider Composing Functionality with Mix-in Classes /

條目 41:考慮使用混合類來組合功能 165

Item 42: Prefer Public Attributes Over Private Ones /

條目 42:優先考慮使用共有屬性表示應受保護的數據,避免使用私有屬性表示 170

Item 43: Inherit from collections.abc for Custom Container Types /

條目 43:使用 collections.abc 繼承自定義容器類型 175

Chapter 6 Metaclasses and Attributes / 第 6 章 元類和屬性 181

Item 44: Use Plain Attributes Instead of Setter and Getter Methods /

條目 44:使用純屬性而不是 setter 和 getter 方法 181

Item 45: Consider @property Instead of Refactoring Attributes /

條目 45:考慮使用@property 而不是重構屬性 186

Item 46: Use Descriptors for Reusable @property Methods /

條目 46:使用描述符來改寫需要復用的@property 方法 190

Item 47: Use __getattr__, __getattribute__, and __setattr__ for Lazy Attributes /

條目 47:使用__getattr__、__getattribute__和__setattr__處理惰性屬性 195

Item 48: Validate Subclasses with __init_subclass__ /

條目 48:使用__init_subclass__驗證子類 201

Item 49: Register Class Existence with __init_subclass__ /

條目 49:使用__init_subclass__記錄現有的子類 208

Item 50: Annotate Class Attributes with __set_name__ /

條目 50:使用__set_name__注釋類屬性 214

Item 51: Prefer Class Decorators Over Metaclasses for Composable Class Extensions /

條目 51:使用類修飾器而不是元類來實現可組合的類擴展 218

Chapter 7 Concurrency and Parallelism / 第 7 章 并發和并行 225

Item 52: Use subprocess to Manage Child Processes /

條目 52:使用 subprocess 管理子進程 226

Item 53: Use Threads for Blocking I/O, Avoid for Parallelism /

條目 53:使用線程處理阻塞 I/O,但避免使用它做并行計算 230

Item 54: Use Lock to Prevent Data Races in Threads /

條目 54:使用 Lock 避免線程中的數據競爭 235

Item 55: Use Queue to Coordinate Work Between Threads /

條目 55:使用 Queue 協調線程間的工作 238

Item 56: Know How to Recognize When Concurrency Is Necessary /

條目 56:學會判斷何時需要并發 248

Item 57: Avoid Creating New Thread Instances for On-demand Fan-out /

條目 57:避免為按需分發創建新的 Thread 實例 252

Item 58: Understand How Using Queue for Concurrency Requires Refactoring /

條目 58:學會正確地重構代碼,以便用 Queue 做并發 257

Item 59: Consider ThreadPoolExecutor When Threads Are Necessary for Concurrency /

條目 59:在需要并發時考慮 ThreadPoolExecutor 264

Item 60: Achieve Highly Concurrent I/O with Coroutines /

條目 60:使用協程實現高并發 I/O 266

Item 61: Know How to Port Threaded I/O to asyncio /

條目 61:了解如何將基于線程的 I/O 移植到 asyncio 271

Item 62: Mix Threads and Coroutines to Ease the Transition to asyncio /

條目 62:混合使用線程和協程以便過渡到 asyncio 282

Item 63: Avoid Blocking the asyncio Event Loop to Maximize Responsiveness /

條目 63:避免阻塞 asyncio 事件循環以*大化程序的響應能力 289

Item 64: Consider concurrent.futures for True Parallelism /

條目 64:考慮 concurrent.futures 以實現真正的并行計算 292

Chapter 8 Robustness and Performance / 第 8 章 穩定性和性能 299

Item 65: Take Advantage of Each Block in try/except/else/finally /

條目 65:充分利用 try/except/else/finally 結構中的每個代碼塊 299

Item 66: Consider contextlib and with Statements for Reusable try/finally Behavior /

條目 66:考慮使用 contextlib 和 with 語句來改寫可復用的 try/finally 代碼 304

Item 67: Use datetime Instead of time for Local Clocks /

條目 67:使用 datetime 模塊而不是 time 模塊處理本地時間 308

Item 68: Make pickle Reliable with copyreg /

條目 68:使用 copyreg 實現可靠的 pickle 操作 312

Item 69: Use decimal When Precision Is Paramount /

條目 69:在需要準確計算時使用 decimal 表示相應的數值 319

Item 70: Profile Before Optimizing /

條目 70:在優化之前進行性能分析 322

Item 71: Prefer deque for Producer ?C Consumer Queues /

條目 71:優先考慮使用 deque 實現生產者-消費者隊列 326

Item 72: Consider Searching Sorted Sequences with bisect /

條目 72:考慮使用 bisect 搜索排序序列 334

Item 73: Know How to Use heapq for Priority Queues /

條目 73:學會使用 heapq 制作優先級隊列 336

Item 74: Consider memoryview and bytearray for Zero-Copy Interactions with bytes /

條目 74:考慮使用 memoryview 和 bytearray 來實現無須拷貝的 bytes 操作 346

Chapter 9 Testing and Debugging / 第 9 章 測試和調試 353

Item 75: Use repr Strings for Debugging Output /

條目 75:使用 repr 字符串輸出調試信息 354

Item 76: Verify Related Behaviors in TestCase Subclasses /

條目 76:通過 TestCase 子類驗證相關行為 357

Item 77: Isolate Tests from Each Other with setUp, tearDown, setUpModule, and tearDownModule /

條目 77:使用 setUp、tearDown、setUpModule 和tearDownModule 將測試隔離開 365

Item 78: Use Mocks to Test Code with Complex Dependencies /

條目 78:使用 Mock 來模擬受測代碼所依賴的復雜函數 367

Item 79: Encapsulate Dependencies to Facilitate Mocking and Testing /

條目 79:封裝依賴關系以便于模擬和測試 375

Item 80: Consider Interactive Debugging with pdb /

條目 80:考慮使用 pdb 進行交互式調試 379

Item 81: Use tracemalloc to Understand Memory Usage and Leaks /

條目 81:使用 tracemalloc 了解內存使用和泄漏情況 384

Chapter 10 Collaboration / 第 10 章 協作開發 389

Item 82: Know Where to Find Community-Built Modules /

條目 82:學會尋找由其他 Python 開發者所構建的模塊 389

Item 83: Use Virtual Environments for Isolated and Reproducible Dependencies /

條目 83:使用虛擬環境隔離環境,并重建依賴關系 390

Item 84: Write Docstrings for Every Function, Class, and Module /

條目 84:為每個函數、類和模塊編寫文檔字符串 396

Item 85: Use Packages to Organize Modules and Provide Stable APIs /

條目 85:使用包來組織模塊并提供穩定的 API 401

Item 86: Consider Module-Scoped Code to Configure Deployment Environments /

條目 86:考慮使用模塊級別的代碼來配置不同的部署環境 406

Item 87: Define a Root Exception to Insulate Callers from APIs /

條目 87:使用根異常來隔離調用者與 API 408

Item 88: Know How to Break Circular Dependencies /

條目 88:了解如何打破循環依賴關系 413

Item 89: Consider warnings to Refactor and Migrate Usage /

條目 89:考慮使用 warnings 來重構和遷移用法 418

Item 90: Consider Static Analysis via typing to Obviate Bugs /

條目 90:考慮使用 typing 做靜態分析來消除錯誤 425
展開全部

EFFECTIVE PYTHON:編寫好PYTHON的90個有效方法(第2版 英文版) 作者簡介

[美]布雷特·斯拉特金(Breut Slatkin)是Google的Principal Software Engineer,Google Surveys的聯合技術創辦人,也是PubSubHubbub協議的共同創造者之一。此外,Slatkin還發布了Google的一個云計算產品--AppEngime。早在2006年,Slatkin 就開始使用Python來管理Google 龐大的服務器群。他擁有紐約哥倫比亞大學計算機工程學士學位。

商品評論(0條)
暫無評論……
書友推薦
編輯推薦
返回頂部
中圖網
在線客服
三级一区在线视频先锋_丁香另类激情小说_中文字幕一区二区三_一本一道久久a久久精品综合蜜臀_一区二区三区四区国产精品_日韩**一区毛片_在线观看日韩电影_1000部国产精品成人观看_免费不卡在线视频_亚洲国产日日夜夜_国产亚洲精品福利_亚洲精品一区二区三区在线观看_欧美美女一区二区三区_日韩欧美色电影_欧美aaa在线_久久这里只有精品6
欧美日韩综合不卡| 亚洲v国产v| 国内不卡的二区三区中文字幕| 亚洲成在线观看| 日韩激情一二三区| 精品一区二区三区蜜桃| 国内精品久久久久影院一蜜桃| 国产美女精品人人做人人爽| 成人开心网精品视频| 99综合电影在线视频| 成人影片在线播放| 欧美精品人人做人人爱视频| 亚洲欧洲精品一区二区| 欧美四级电影网| 精品国一区二区三区| 亚洲欧美综合在线精品| 亚洲成年人影院| 国产在线播放一区三区四| 99久久精品一区| 久久香蕉综合色| 色女孩综合影院| 精品国产凹凸成av人导航| 国产精品网曝门| 亚洲成av人片| 国产成人激情av| 国产伦精品一区| 色婷婷狠狠综合| 精品久久国产字幕高潮| 亚洲伦理在线精品| 激情小说亚洲一区| av不卡在线观看| 欧美大香线蕉线伊人久久| 欧美三级电影网站| 国产精品国产三级国产a| 秋霞电影网一区二区| 成人天堂资源www在线| 乱一区二区三区在线播放| 欧美日韩在线播放| 国产精品卡一卡二| 精品中文字幕一区二区小辣椒| 91性感美女视频| 亚洲视频在线二区| 久久久久久久久伊人| 日韩精品亚洲专区| 97在线资源站| 欧美在线观看视频一区二区 | 国产精品动漫网站| 美女任你摸久久 | 另类欧美小说| 日韩欧美在线观看一区二区三区| 国产精品不卡一区| 国产专区欧美精品| 欧美大陆一区二区| 精品国产3级a| 久久av中文字幕片| 欧美一区二区三区成人久久片 | 欧美无人高清视频在线观看| 国产精品女主播在线观看| 狠狠色丁香婷婷综合| 欧美一级片免费观看| 欧美不卡123| 青青草国产成人99久久| 久久超碰亚洲| 久久亚洲一级片| 狠狠色丁香久久婷婷综合_中| 欧美深深色噜噜狠狠yyy| 欧美tickling挠脚心丨vk| 美国十次综合导航| 午夜精品一区二区在线观看| 国产精品美女久久久久aⅴ | 欧洲一区二区在线| 中文字幕不卡在线播放| 国产91露脸合集magnet | 欧美亚一区二区| 亚洲黄色尤物视频| 91在线观看网站| 欧美刺激午夜性久久久久久久| 久久99精品久久久久久| 亚洲成人av动漫| 亚洲人精品午夜| 国产一区福利视频| 国产欧美一区二区精品忘忧草 | 久久老女人爱爱| 国产在线精品一区二区夜色| 在线观看日韩国产| 日韩精品一卡二卡三卡四卡无卡| 日本精品免费| 亚洲精品亚洲人成人网| 久久精品人人做人人爽电影| 国产精品久久久久影院亚瑟| 成人综合av网| 国产欧美视频在线观看| 97超碰欧美中文字幕| 久久无码av三级| 99久久免费精品高清特色大片| 欧美大片国产精品| av一区二区三区四区| 精品国产露脸精彩对白| 91原创在线视频| 欧美韩国日本综合| 久久国产一区二区| 亚洲欧美一区二区三区孕妇| 免费日韩电影在线观看| 一区二区三区在线高清| 亚洲成人自拍| 天天综合网天天综合色| 色天使色偷偷av一区二区| 久久草av在线| 91精品国产色综合久久不卡电影 | 日韩精品另类天天更新| 亚洲精品久久久久久国产精华液| 免费久久一级欧美特大黄 | 国产在线一区观看| 日韩精品一区二区三区四区视频| 成人h动漫精品| 国产精品少妇自拍| 欧美激情专区| 日韩av电影天堂| 9191久久久久久久久久久| 9久草视频在线视频精品| 国产欧美日韩另类一区| 精品一区二区国产| 午夜国产精品一区| 欧美男男青年gay1069videost| 成人免费的视频| 亚洲欧洲99久久| 色婷婷久久久久swag精品| 国产成人精品免费在线| 久久精品欧美日韩精品| 久久涩涩网站| 蜜乳av一区二区| 久久久久久久久免费| 日韩欧美视频一区二区三区四区| 免费人成在线不卡| 久久夜色精品国产噜噜av| 欧美lavv| 国产另类ts人妖一区二区| 久久美女艺术照精彩视频福利播放| 精品国产综合久久| 琪琪久久久久日韩精品| 久久久久久夜精品精品免费| 日韩欧美一区二区三区四区 | 国产一区再线| 日韩影院在线观看| 欧美va亚洲va香蕉在线| 欧美日韩国产免费一区二区三区| 久久精品国产网站| 国产精品麻豆久久久| 欧美综合一区二区| 国产伦精品一区二区三| 久久er99热精品一区二区| 国产精品午夜免费| 欧美日本免费一区二区三区| 国产伦精品一区二区三区在线 | 国产丶欧美丶日本不卡视频| 中文字幕成人av| 欧美亚洲一区二区在线| 国产亚洲精品自在久久| 久久99精品久久久久久动态图| 欧美激情一区在线| 欧洲日韩一区二区三区| 精品免费国产| 不卡视频在线看| 日本中文在线一区| 中文字幕永久在线不卡| 8x福利精品第一导航| 亚洲第一导航| 99影视tv| 国产精品99久久不卡二区| 亚洲美女视频在线观看| 精品少妇一区二区三区视频免付费 | 精品成人一区二区| 自拍偷拍99| 精品伊人久久大线蕉色首页| 豆国产96在线|亚洲| 污片在线观看一区二区| 国产精品成人网| 精品国产一区二区三区av性色| 在线观看一区二区三区三州 | 欧美久久久久久久久中文字幕| 欧美日韩免费观看一区| 91污片在线观看| 国产永久精品大片wwwapp| 亚洲综合色成人| 国产精品美女视频| 久久亚洲精品小早川怜子| 欧美日韩免费高清一区色橹橹| 日韩欧美在线观看强乱免费| 国产成人精品福利一区二区三区| 国产精品白丝jk白祙喷水网站| 视频一区视频二区中文| 亚洲精品综合在线| 国产精品女上位| 久久精品无码一区二区三区| 欧美一级黄色片| 欧美日韩性生活| 在线观看日韩精品| 色综合久久久网| 色拍拍在线精品视频8848| 一区二区三区我不卡|