• 流畅的Python:第2版
  • 流畅的Python:第2版
21年品牌 40万+商家 超1.5亿件商品

流畅的Python:第2版

正版保障 假一赔十 电子发票

104.75 5.2折 199.8 全新

库存27件

河北廊坊
认证卖家担保交易快速发货售后保障

作者卢西亚诺·拉马略

出版社人民邮电出版社

ISBN9787115612366

出版时间2023-04

装帧平装

开本16开

定价199.8元

货号877E526DC676467CB67

上书时间2024-03-30

瀚东书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
前言

 
 
 
 

商品简介

本书是Python领域备受推崇的经典作品,致力于帮助Python开发人员挖掘这门语言及相关程序库的优秀特性,写出简洁、流畅、易读、易维护,并且地道的Python代码。本书着重讲解Python语言所独有的功能,助你成功进阶为Python高手。第2版与时俱进,教你跳出旧有经验,探索并运用地道的Python 3功能。第2版主体内容分为五部分:数据结构、函数即对象、类和协议、控制流、元编程。每一部分都精彩纷呈,通过丰富的示例和细致的讲解,教你充分利用Python特性,写出有效且现代的Python 3代码。



作者简介

  
 
   【作者简介】 卢西亚诺·拉马略(Luciano Ramalho) Thoughtworks首席咨询师、Python软件基金会成员、巴西Python语言学习社区Python Brasil联合创立人。拥有25年Python编程经验,著有编程领域作品《流畅的Python》。 【译者简介】 安道 活跃的技术图书译者,译有《流畅的Python》《Flask Web开发:基于Python的Web应用开发实战》《Python网络编程攻略》等图书。  
 


目录

  
 
   【上册】 

 前言 i 

 第 一部分 数据结构 

 第 1章 Python数据模型 3 

 1.1 本章新增内容 4 

 1.2 一摞Python风格的纸牌 4 

 1.3 特殊方法是如何使用的 7 

 1.3.1 模拟数值类型 8 

 1.3.2 字符串表示形式 10 

 1.3.3 自定义类型的布尔值 11 

 1.3.4 容器API 12 

 1.4 特殊方法概述 13 

 1.5 len为什么不是方法 14 

 1.6 本章小结 14 

 1.7 延伸阅读 15 

 第 2章 丰富的序列 17 

 2.1 本章新增内容 18 

 2.2 内置序列类型概览 18 

 2.3 列表推导式和生成器表达式 20 

 2.3.1 列表推导式对可读性的影响 20 

 2.3.2 列表推导式与map和filter比较 22 

 2.3.3 笛卡儿积 22 

 2.3.4 生成器表达式 23 

 2.4 元组不仅仅是不可变列表 24 

 2.4.1 用作记录 24 

 2.4.2 用作不可变列表 26 

 2.4.3 列表和元组方法的比较 27 

 2.5 序列和可迭代对象拆包 28 

 2.5.1 使用*获取余下的项 29 

 2.5.2 在函数调用和序列字面量中使用*拆包 29 

 2.5.3 嵌套拆包 30 

 2.6 序列模式匹配 31 

 2.7 切片 37 

 2.7.1 为什么切片和区间排除最后一项 38 

 2.7.2 切片对象 38 

 2.7.3 多维切片和省略号 39 

 2.7.4 为切片赋值 40 

 2.8 使用+和*处理序列 40 

 2.8.1 构建嵌套列表 41 

 2.8.2 使用增量赋值运算符处理序列 42 

 2.8.3 一个+=运算符赋值谜题 43 

 2.9 list.sort与内置函数sorted 45 

 2.10 当列表不适用时 46 

 2.10.1 数组 47 

 2.10.2 memoryview 49 

 2.10.3 NumPy 50 

 2.10.4 双端队列和其他队列 52 

 2.11 本章小结 55 

 2.12 延伸阅读 56 

 第3章 字典和集合 59 

 3.1 本章新增内容 60 

 3.2 字典的现代句法 60 

 3.2.1 字典推导式 60 

 3.2.2 映射拆包 61 

 3.2.3 使用|合并映射 61 

 3.3 使用模式匹配处理映射 62 

 3.4 映射类型的标准API 64 

 3.4.1 “可哈希”指什么 64 

 3.4.2 常用映射方法概述 65 

 3.4.3 插入或更新可变的值 67 

 3.5 自动处理缺失的键 69 

 3.5.1 defaultdict:处理缺失键的另一种选择 69 

 3.5.2 __missing__方法 70 

 3.5.3 标准库对__missing__方法的使用不一致 72 

 3.6 dict的变体 73 

 3.6.1 collections.OrderedDict 73 

 3.6.2 collections.ChainMap 73 

 3.6.3 collections.Counter 74 

 3.6.4 shelve.Shelf 74 

 3.6.5 子类应继承UserDict而不是dict 75 

 3.7 不可变映射 76 

 3.8 字典视图 77 

 3.9 dict的实现方式对实践的影响 78 

 3.10 集合论 79 

 3.10.1 set字面量 80 

 3.10.2 集合推导式 81 

 3.11 集合的实现方式对实践的影响 81 

 3.12 字典视图的集合运算 84 

 3.13 本章小结 85 

 3.14 延伸阅读 86 

 第4章 Unicode文本和字节序列 88 

 4.1 本章新增内容 89 

 4.2 字符问题 89 

 4.3 字节概要 90 

 4.4 基本的编码解码器 92 

 4.5 处理编码和解码问题 93 

 4.5.1 处理UnicodeEncodeError 94 

 4.5.2 处理UnicodeDecodeError 95 

 4.5.3 加载模块时编码不符合预期抛出的SyntaxError 95 

 4.5.4 如何找出字节序列的编码 96 

 4.5.5 BOM:有用的鬼符 97 

 4.6 处理文本文件 98 

 4.7 为了正确比较而规范化Unicode字符串 105 

 4.7.1 大小写同一化 107 

 4.7.2 规范化文本匹配的实用函数 108 

 4.7.3 极端“规范化”:去掉变音符 109 

 4.8 Unicode文本排序 111 

 4.9 Unicode数据库 113 

 4.9.1 按名称查找字符 114 

 4.9.2 字符的数值意义 115 

 4.10 支持str和bytes的双模式API 117 

 4.10.1 正则表达式中的str和bytes 117 

 4.10.2 os函数中的str和bytes 118 

 4.11 本章小结 119 

 4.12 延伸阅读 119 

 第5章 数据类构建器 123 

 5.1 本章新增内容 124 

 5.2 数据类构建器概述 124 

 5.3 典型的具名元组 128 

 5.4 带类型的具名元组 130 

 5.5 类型提示入门 131 

 5.5.1 运行时没有作用 131 

 5.5.2 变量注解句法 132 

 5.5.3 变量注解的意义 132 

 5.6 @dataclass详解 135 

 5.6.1 字段选项 136 

 5.6.2 初始化后处理 139 

 5.6.3 带类型的类属性 140 

 5.6.4 初始化不作为字段的变量 141 

 5.6.5 @dataclass示例:都柏林核心模式 142 

 5.7 数据类导致代码异味 144 

 5.7.1 把数据类用作脚手架 145 

 5.7.2 把数据类用作中间表述 145 

 5.8 模式匹配类实例 145 

 5.8.1 简单类模式 145 

 5.8.2 关键字类模式 146 

 5.8.3 位置类模式 147 

 5.9 本章小结 148 

 5.10 延伸阅读 149 

 第6章 对象引用、可变性和垃圾回收 152 

 6.1 本章新增内容 152 

 6.2 变量不是盒子 153 

 6.3 同一性、相等性和别名 154 

 6.3.1 在==和is之间选择 156 

 6.3.2 元组的相对不可变性 157 

 6.4 默认做浅拷贝 157 

 6.5 函数的参数是引用时 161 

 6.5.1 不要使用可变类型作为参数的默认值 162 

 6.5.2 防御可变参数 164 

 6.6 del和垃圾回收 165 

 6.7 Python对不可变类型施加的把戏 167 

 6.8 本章小结 168 

 6.9 延伸阅读 169 

 第二部分 函数即对象 

 第7章 函数是一等对象 175 

 7.1 本章新增内容 176 

 7.2 把函数视为对象 176 

 7.3 高阶函数 177 

 7.4 匿名函数 179 

 7.5 9种可调用对象 180 

 7.6 用户定义的可调用类型 181 

 7.7 从位置参数到仅限关键字参数 182 

 7.8 支持函数式编程的包 184 

 7.8.1 operator模块 184 

 7.8.2 使用functools.partial冻结参数 187 

 7.9 本章小结 189 

 7.10 延伸阅读 189 

 第8章 函数中的类型提示 192 

 8.1 本章新增内容 193 

 8.2 关于渐进式类型 193 

 8.3 渐进式类型实践 194 

 8.3.1 Mypy初体验 195 

 8.3.2 让Mypy严格要求 195 

 8.3.3 参数的默认值 196 

 8.3.4 使用None表示默认值 198 

 8.4 类型由受支持的操作定义 198 

 8.5 注解中可用的类型 202 

 8.5.1 Any类型 203 

 8.5.2 简单的类型和类 205 

 8.5.3 Optional类型和Union类型 205 

 8.5.4 泛化容器 207 

 8.5.5 元组类型 209 

 8.5.6 泛化映射 211 

 8.5.7 抽象基类 212 

 8.5.8 Iterable 214 

 8.5.9 参数化泛型和TypeVar 215 

 8.5.10 静态协议 218 

 8.5.11 Callable 223 

 8.5.12 NoReturn 225 

 8.6 注解仅限位置参数和变长参数 225 

 8.7 类型不完美,测试须全面 226 

 8.8 本章小结 227 

 8.9 延伸阅读 228 

 第9章 装饰器和闭包 232 

 9.1 本章新增内容 233 

 9.2 装饰器基础知识 233 

 9.3 Python何时执行装饰器 234 

 9.4 注册装饰器 235 

 9.5 变量作用域规则 236 

 9.6 闭包 239 

 9.7 nonlocal声明 241 

 9.8 实现一个简单的装饰器 243 

 9.9 标准库中的装饰器 245 

 9.9.1 使用functools.cache做备忘 245 

 9.9.2 使用lru_cache 248 

 9.9.3 单分派泛化函数 249 

 9.10 参数化装饰器 252 

 9.10.1 一个参数化注册装饰器 253 

 9.10.2 参数化clock装饰器 254 

 9.10.3 基于类的clock装饰器 256 

 9.11 本章小结 257 

 9.12 延伸阅读 258 

 第 10章 使用一等函数实现设计模式 261 

 10.1 本章新增内容 262 

 10.2 案例分析:重构策略模式 262 

 10.2.1 经典的策略模式 262 

 10.2.2 使用函数实现策略模式 265 

 10.2.3 选择最佳策略的简单方式 268 

 10.2.4 找出一个模块中的全部策略 269 

 10.3 使用装饰器改进策略模式 270 

 10.4 命令模式 272 

 10.5 本章小结 273 

 10.6 延伸阅读 274 

 第三部分 类和协议 

 第 11章 符合Python风格的对象 279 

 11.1 本章新增内容 280 

 11.2 对象表示形式 280 

 11.3 再谈向量类 281 

 11.4 备选构造函数 283 

 11.5 classmethod与staticmethod 283 

 11.6 格式化显示 284 

 11.7 可哈希的Vector2d 287 

 11.8 支持位置模式匹配 289 

 11.9 第3版Vector2d的完整代码 290 

 11.10 Python私有属性和“受保护”的属性 294 

 11.11 使用__slots__节省空间 295 

 11.11.1 简单衡量__slot__节省的内存 297 

 11.11.2 总结__slots__的问题 298 

 11.12 覆盖类属性 299 

 11.13 本章小结 300 

 11.14 延伸阅读 301 

 第 12章 序列的特殊方法 305 

 12.1 本章新增内容 305 

 12.2 Vector类:用户定义的序列类型 306 

 12.3 Vector类第 1版:与Vector2d类兼容 306 

 12.4 协议和鸭子类型 308 

 12.5 Vector类第 2版:可切片的序列 309 

 12.5.1 切片原理 310 

 12.5.2 能处理切片的__getitem__方法 312 

 12.6 Vector类第3版:动态存取属性 313 

 12.7 Vector类第4版:哈希和快速等值测试 316 

 12.8 Vector类第5版:格式化 321 

 12.9 本章小结 327 

 12.10 延伸阅读 328 

 第 13章 接口、协议和抽象基类 332 

 13.1 类型图 333 

 13.2 本章新增内容 333 

 13.3 两种协议 334 

 13.4 利用鸭子类型编程 335 

 13.4.1 Python喜欢序列 335 

 13.4.2 使用猴子补丁在运行时实现协议 337 

 13.4.3 防御性编程和“快速失败” 339 

 13.5 大鹅类型 340 

 13.5.1 子类化一个抽象基类 344 

 13.5.2 标准库中的抽象基类 345 

 13.5.3 定义并使用一个抽象基类 347 

 13.5.4 抽象基类句法详解 351 

 13.5.5 子类化抽象基类Tombola 352 

 13.5.6 抽象基类的虚拟子类 354 

 13.5.7 register的实际使用 356 

 13.5.8 使用抽象基类实现结构类型 356 

 13.6 静态协议 358 

 13.6.1 为double函数添加类型提示 358 

 13.6.2 运行时可检查的静态协议 359 

 13.6.3 运行时协议检查的局限性 362 

 13.6.4 支持静态协议 363 

 13.6.5 设计一个静态协议 364 

 13.6.6 协议设计最佳实践 366 

 13.6.7 扩展一个协议 366 

 13.6.8 numbers模块中的抽象基类和Numeric协议 367 

 13.7 本章小结 369 

 13.8 延伸阅读 370 

 第 14章 继承:瑕瑜互见 374 

 14.1 本章新增内容 375 

 14.2 super()函数 375 

 14.3 子类化内置类型很麻烦 377 

 14.4 多重继承和方法解析顺序 379 

 14.5 混入类 384 

 14.6 多重继承的实际运用 385 

 14.6.1 抽象基类也是混入类 386 

 14.6.2 ThreadingMixIn和ForkingMixIn 386 

 14.6.3 Django泛化视图混入类 387 

 14.6.4 Tkinter中的多重继承 390 

 14.7 应对多重继承 391 

 14.7.1 优先使用对象组合,而不是类继承 391 

 14.7.2 理解不同情况下使用继承的原因 392 

 14.7.3 使用抽象基类显式表示接口 392 

 14.7.4 通过混入明确重用代码 392 

 14.7.5 为用户提供聚合类 392 

 14.7.6 仅子类化为子类化设计的类 393 

 14.7.7 避免子类化具体类 393 

 14.7.8 Tkinter的好、不好以及令人厌恶的方面 394 

 14.8 本章小结 394 

 14.9 延伸阅读 395 

 第 15章 类型提示进阶 399 

 15.1 本章新增内容 399 

 15.2 重载的签名 400 

 15.2.1 重载max函数 401 

 15.2.2 重载max函数的启示 405 

 15.3 TypedDict 405 

 15.4 类型校正 411 

 15.5 在运行时读取类型提示 413 

 15.5.1 注解在运行时的问题 414 

 15.5.2 解决这个问题 416 

 15.6 实现一个泛化类 417 

 15.7 型变 419 

 15.7.1 一个不变的自动售货机 419 

 15.7.2 一个协变的自动售货机 421 

 15.7.3 一个逆变的垃圾桶 421 

 15.7.4 型变总结 423 

 15.8 实现泛化静态协议 425 

 15.9 本章小结 426 

 15.10 延伸阅读 427 

 第 16章 运算符重载 431 

 16.1 本章新增内容 432 

 16.2 运算符重载入门 432 

 16.3 一元运算符 433 

 16.4 重载向量加法运算符+ 435 

 16.5 重载标量乘法运算符* 439 

 16.6 把@当作中缀运算符使用 441 

 16.7 算术运算符总结 443 

 16.8 众多比较运算符 443 

 16.9 增量赋值运算符 446 

 16.10 本章小结 450 

 16.11 延伸阅读 451 

 【下册】 

 第四部分 控制流 

 第 17章 迭代器、生成器和经典协程 457 

 17.1 本章新增内容 458 

 17.2 单词序列 458 

 17.3 序列可以迭代的原因:iter函数 459 

 17.4 可迭代对象与迭代器 462 

 17.5 为Sentence类实现__iter__方法 465 

 17.5.1 Sentence类第 2版:经典迭代器 465 

 17.5.2 不要把可迭代对象变成迭代器 466 

 17.5.3 Sentence类第3版:生成器函数 467 

 17.5.4 

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP