流利的Python,第二版

书中描述

Python的简单性使您能够快速提高生产率,但这通常意味着您没有使用它提供的所有东西。通过这个实践指南的更新版本,您将学习如何通过利用其最好的思想来编写有效的现代Python 3代码。

不要浪费时间弯曲Python以适应您在其他语言中学习的模式。发现并应用您过去经验之外的惯用Python 3特性。作者Luciano Ramalho将向您介绍Python的核心语言特性和库,并教你如何使代码更短、更快、更易读。

本书主要更新,流利Python,第二版,封面:

  • 特殊的方法:Python对象行为一致性的关键
  • 数据结构:序列、字典、集合、Unicode和数据类
  • 函数作为对象:一级函数、相关设计模式和函数声明中的类型提示
  • 面向对象的成语:组合、继承、mixins、接口、操作符重载、静态类型和协议
  • 控制流:上下文管理器、生成器、协程、async/await和线程/进程池
  • 元编程:属性,属性描述符,类装饰器和比metaclass的更简单的新类元编程挂钩

出版商资源

视图/提交勘误表

表的内容

  1. 前言
    1. 这本书是写给谁的
    2. 这本书不写给谁看
    3. 这本书是如何组织的
    4. 实践的方法
    5. 用于时间的硬件
    6. 即兴演讲:我的个人观点
    7. Python术语
    8. Python版本覆盖
    9. 本书使用的约定
    10. 使用代码示例
    11. 如何联络我们
    12. 致谢
  2. 一、前言
  3. 1.Python数据模型
    1. 188比分直播篮球比分这一章有什么新内容
    2. 一个Pythonic牌组
    3. 如何使用特殊方法
      1. 模拟数字类型
      2. 串表示
      3. 算术运算符
      4. 布尔自定义类型的值
      5. 集合API
    4. 特殊方法概述
    5. 为什么len不是方法
    6. 章总结
    7. 进一步的阅读
  4. 2数据结构
  5. 2.序列的数组
    1. 188比分直播篮球比分这一章有什么新内容
    2. 内置序列概述
    3. 列表推导式和生成器表达式
      1. 列出理解性和可读性
      2. ListComps与地图和过滤器
      3. 笛卡儿的产品
      4. 生成器表达式
    4. 元组不仅仅是不可变的列表
      1. 元组作为记录
      2. 拆包
      3. 嵌套的元组拆包
      4. 元组作为不可变列表
      5. 元组和列表方法
    5. 切片
      1. 为什么切片和范围排除了最后一个项目
      2. 片对象
      3. 多维切片和省略号
      4. 分配切片
    6. 对序列使用+和*
      1. 列表中的建筑列表
    7. 序列增广赋值
      1. A +=任务谜题
    8. 列表。sort和已排序的内置函数
    9. 使用bisect管理有序序列
      1. 搜索和平分
      2. 插入与bisect.insort
    10. 当列表不是答案时
      1. 数组
      2. 内存视图
      3. NumPy
      4. Deques和其他队列
    11. 章总结
    12. 进一步的阅读
  6. 3.词典和集
    1. 188比分直播篮球比分这一章有什么新内容
    2. 映射类型的标准API
    3. dict理解
    4. 常用映射方法概述
      1. 使用setdefault处理丢失的键
    5. 灵活的键查找映射
      1. 默认dict:另一种对丢失键的处理
      2. __missing__方法
    6. 变化的东西
    7. 构建定制的映射
      1. 子类化UserDict
    8. 不可变的映射
    9. 字典的看法
    10. 集理论
      1. 设置文本
      2. 集理解
      3. 集合操作
      4. 对字典视图进行设置操作
    11. 集合和字典的内部
      1. 性能实验
      2. 在引擎盖下设置散列表
      3. 哈希表算法
      4. 哈希表在字典中的使用
      5. 匙共享字典
      6. dict如何工作的实际后果
    12. 章总结
    13. 进一步的阅读
  7. 4.文本和字节
    1. 188比分直播篮球比分这一章有什么新内容
    2. 性格的问题
    3. 字节要点
    4. 基本的编码器/解码器
    5. 了解编码/解码问题
      1. 应对UnicodeEncodeError
      2. 应对UnicodeDecodeError
      3. 当加载带有意外编码的模块时出现SyntaxError
      4. 如何发现字节序列的编码
      5. 一个有用的小精灵
    6. 处理文本文件
      1. 注意编码默认值
    7. 为可靠比较规范化Unicode
      1. 情况下折叠
      2. 用于规范化文本匹配的实用函数
      3. 极端“正常化”:去掉变音符
    8. 排序Unicode文本
      1. 使用Unicode排序算法排序
    9. Unicode数据库
      1. 按名称查找字符
      2. 字符的数字含义
    10. 双模式str和字节api
      1. str相对于bytes在正则表达式
      2. 相对于os函数中的bytes
    11. 多emojis
      1. 国家国旗
      2. 肤色
      3. 彩虹旗等ZWJ系列
    12. 章总结
    13. 进一步的阅读
  8. 5.类似记录的数据结构
    1. 188比分直播篮球比分这一章有什么新内容
    2. 数据类构建器概述
      1. 主要特点
    3. 经典叫元组
    4. 类型命名的元组
    5. 类型提示101
      1. 没有运行时的效果
      2. 变量注释语法
      3. 变量注释的含义
    6. 更多关于@dataclass
      1. 场的选择
      2. 后初始处理
      3. 类型的类属性
      4. 不是字段的初始化变量
      5. @dataclass示例:都柏林核心资源记录
    7. 数据类作为代码气味
      1. 数据类作为脚手架
      2. 数据类作为中间表示
    8. 使用struct解析二进制记录
      1. 结构和内存视图
      2. 我们应该使用struct吗?
    9. 章总结
    10. 进一步的阅读
  9. 6.对象引用、可变性和回收
    1. 188比分直播篮球比分这一章有什么新内容
    2. 变量不是盒子
    3. 身份、平等和别名
      1. 在==和是之间选择
      2. 元组的相对不变性
    4. 拷贝默认为浅拷贝
      1. 任意对象的深层和浅层副本
    5. 作为引用的函数参数
      1. 可变类型作为默认参数:坏主意
      2. 使用可变参数的防御性编程
    6. 德尔和垃圾收集
    7. 弱引用
      1. 弱化暗淡的婴儿
      2. 弱参考文献的局限性
    8. Python使用不可变变量的技巧
    9. 章总结
    10. 进一步的阅读
  10. 3函数作为对象
  11. 7.一级函数
    1. 188比分直播篮球比分这一章有什么新内容
    2. 像对待对象一样对待函数
    3. 高阶函数
      1. 现代替代地图,过滤器,和减少
    4. 匿名函数
    5. 可调用对象的九种风格
    6. 用户定义的可调用的类型
    7. 函数自省
    8. 从位置参数到关键字参数
      1. Positional-only参数
    9. 检索参数信息
    10. 函数式编程包
      1. 操作员模块
      2. 用functools.partial冻结参数
    11. 章总结
    12. 进一步的阅读
  12. 8.在功能中键入提示
    1. 188比分直播篮球比分这一章有什么新内容
    2. 关于逐步打字
    3. 渐进式打字实践
      1. 从Mypy
      2. 让我的pyy更严格
      3. A默认参数值
      4. 使用None作为默认值
      5. Python 2.7和3.x的类型提示
    4. 类型由支持的操作定义
    5. 注释中可用的类型
      1. 任何类型
      2. 简单类型和类
      3. 可选类型和联合类型
      4. 泛型集合
      5. 元组
      6. 通用的映射
      7. TypedDict
      8. 抽象基类
      9. 可迭代的
      10. 参数化泛型和类型变量
      11. 协议
      12. 可调用的
      13. NoReturn
    6. 标注仅限位置参数和可变参数
    7. 章总结
    8. 进一步的阅读
  13. 9.修饰符和闭包
    1. 188比分直播篮球比分这一章有什么新内容
    2. decorator 101
    3. Python何时执行装饰器
    4. 登记修饰符
    5. 变量作用域规则
    6. 闭包
    7. 外地声明
    8. 实现一个简单的装饰器
      1. 它是如何工作的
    9. 标准库中的装饰器
      1. 记忆与functools.cache
      2. 使用lru_cache
      3. 单次调度通用功能
    10. 参数化的修饰符
      1. 一个参数化的注册装饰器
      2. 参数化时钟装饰器
      3. 一个基于类的时钟装饰器
    11. 章总结
    12. 进一步的阅读
  14. 10.使用一流函数设计模式
    1. 188比分直播篮球比分这一章有什么新内容
    2. 案例研究:重构策略
      1. 经典的策略
      2. 面向功能的策略
      3. 选择最佳策略:简单的方法
      4. 在模块中寻找策略
    3. Decorator-Enhanced策略模式
    4. 命令
    5. 章总结
    6. 进一步的阅读
  15. 类和协议
  16. 11.神谕的对象
    1. 188比分直播篮球比分这一章有什么新内容
    2. 对象表示形式
    3. Vector类回来的
    4. 替代构造函数
    5. classmethod或staticmethod
    6. 格式显示
    7. 一个Hashable Vector2d
    8. Python中的私有和“受保护”属性
    9. 使用__slots__节省内存
      1. __slots__的问题
    10. 覆盖类属性
    11. 章总结
    12. 进一步的阅读
  17. 12.序列黑客,哈希,切片
    1. 188比分直播篮球比分这一章有什么新内容
    2. Vector:用户自定义的序列类型
    3. 矢量花#1:兼容Vector2D
    4. 协议和鸭子类型
    5. 例子2:可切片序列
      1. 切片是如何工作的
      2. 一个Slice-Aware __getitem__
    6. 例子3:动态属性访问
    7. 向量#4:哈希和一个更快==
    8. 矢量拍#5:格式化
    9. 章总结
    10. 进一步的阅读
  18. 13.接口、协议和基本知识
    1. 输入地图
    2. 188比分直播篮球比分这一章有什么新内容
    3. 两种协议
    4. 编程鸭子
      1. Python挖掘序列
      2. monkey - patch:在运行时实现协议
      3. 防御性编程和“快速失败”
    5. 鹅打字
      1. 对ABC归类
      2. 标准库中的基本知识
      3. 定义和使用ABC
      4. ABC语法细节
      5. 子类化Tombola ABC
      6. Tombola的一个虚拟子类
      7. 注册在实践中的运用
      8. 结构类型与abc
    6. 静态协议
      1. 类型化的double函数
      2. 运行时可检查的静态协议
      3. 支持静态协议
      4. 设计静态协议
      5. 扩展一个协议
      6. 数字abc和数字协议
    7. 章总结
    8. 进一步的阅读
  19. 14.继承:是好是坏
    1. 188比分直播篮球比分这一章有什么新内容
    2. 子类化内置类型是棘手的
    3. 多重继承和方法解析顺序
    4. 现实世界中的多重继承
    5. 应对多重继承
      1. 1.区分接口继承和实现继承
      2. 2.使用abc使接口显式
      3. 3.使用Mixins来实现代码重用
      4. 4.通过命名使Mixins显式
      5. 5.ABC也可以是Mixin;相反的情况并不正确
      6. 6.不要从多个具体类派生子类
      7. 7.为用户提供聚合类
      8. 8.比起类继承,更喜欢对象组合。
      9. Tkinter:好的,坏的,丑陋的
    6. 一个现代的例子:Django通用视图中的Mixins
    7. 章总结
    8. 进一步的阅读
  20. 15.更多关于类型提示
  21. 16.操作符重载:正确操作
    1. 188比分直播篮球比分这一章有什么新内容
    2. 操作员重载101.
    3. 一元操作符
    4. 重载+向量加法
    5. 重载*用于标量乘法
    6. 使用@作为中缀操作符
    7. 完成算术运算符
    8. 丰富的比较运算符
    9. 增强任务运营商
    10. 章总结
    11. 进一步的阅读
  22. 17.可迭代对象、迭代器和生成器
    1. 188比分直播篮球比分这一章有什么新内容
    2. 单词序列
    3. 为什么序列是可迭代的:iter函数
    4. iterable和迭代器
    5. 带有__iter__的句子类
      1. 例2:经典迭代器
      2. 不要让可迭代对象本身成为迭代器
      3. 句子取#3:发电机功能
      4. 发电机的工作原理
    6. 懒惰的句子
      1. 例子4:惰性生成器
      2. 句子参考#5:惰性生成器表达式
    7. 生成器表达式:何时使用它们
    8. 另一个例子:等差级数生成器
      1. 使用itertools的等差级数
    9. 在标准库中的生成器函数
    10. 次级发电机与产量从
      1. 重新发明链。
      2. 遍历树
    11. Iterable减少功能
    12. iter函数的详细说明
    13. 案例研究:数据库转换实用程序中的生成器
    14. 发电机协同程序
    15. 章总结
    16. 进一步的阅读
  23. 18.上下文管理器和其他块
    1. 188比分直播篮球比分这一章有什么新内容
    2. 做这个,然后那个:else阻止了if
    3. 上下文管理器和块
    4. ContextLib实用程序
    5. 使用@contextmanager
    6. 章总结
    7. 进一步的阅读
  24. 19.经典的协同程序
    1. 188比分直播篮球比分这一章有什么新内容
    2. 协程是如何从生成器演化而来的
    3. 用作协程的生成器的基本行为
    4. 示例:计算运行平均值的协同程序
    5. Coroutine Priming的装饰器
    6. 协程终止和异常处理
    7. 从Coroutine返回值
    8. 使用收益率从
      1. 管道的协同程序
    9. 屈服的意义
      1. 基本行为的屈服源于
      2. 派生中的异常处理
    10. 用例:离散事件模拟的协程
      1. 关于离散事件模拟
      2. 出租车车队模拟
    11. 章总结
    12. 进一步的阅读
  25. 20.Python中的并发模型
    1. 188比分直播篮球比分这一章有什么新内容
    2. 一些术语
      1. 进程、线程和Python的臭名昭著的GIL
    3. 并发Hello世界
      1. 转轮与线程
      2. 转轮与多处理
      3. 转轮与asyncio
      4. 监事并排
    4. GIL的真正影响
      1. 快速测试
    5. 自产过程池
      1. 基于流程的解决方案
      2. 了解运行时间
      3. 多核PRIME检查器的代码
      4. 线程的办法
    6. 大局
      1. 系统管理
      2. 数据科学
      3. 服务器端Web /移动开发
      4. WSGI应用服务器
      5. 分布式任务队列
    7. 章总结
    8. 进一步的阅读
      1. 线程和进程的并发性
      2. 吉尔的
      3. 标准库之外的并发性
      4. Python之外的并发性和可伸缩性
  26. 21.并发与期货
    1. 188比分直播篮球比分这一章有什么新内容
    2. 并发Web下载
      1. 顺序下载脚本
      2. 下载与concurrent.futures
      3. 未来在哪里?
    3. 使用concurrent.futures启动进程
      1. 多核主检查Redux
    4. 试验executor.map.
    5. 下载与进度显示和错误处理
      1. flags2中的错误处理示例
      2. 使用futures.as_completed
    6. 章总结
    7. 进一步的阅读
  27. 22.异步编程
    1. 188比分直播篮球比分这一章有什么新内容
    2. 一些定义
    3. 例子:探测领域
      1. Guido阅读异步代码的技巧
    4. 新概念:awaitable
    5. 使用asyncio和aiohttp进行下载
      1. 原生科素的秘密:谦逊的发电机
      2. “要么全有要么全无”的问题
    6. 异步上下文管理器
    7. 增强asyncio下载器
      1. 使用asyncio。As_completed和一个信号量
      2. 使用执行器避免阻塞事件循环
      3. 对每个下载进行多次请求
    8. 写作asyncio服务器
      1. FastAPI Web服务
      2. 一个asyncio TCP服务器
    9. 异步迭代和异步迭代对象
      1. 异步发电机的功能
      2. 异步推导式和异步生成器表达式
    10. asyncio之外的Async:古玩
    11. 异步如何工作和它如何不
      1. 绕着阻塞调用转
      2. I/O绑定系统的神话
      3. 避免中央处理器受限的陷阱
    12. 章总结
    13. 进一步的阅读
  28. 23.动态属性和属性
    1. 188比分直播篮球比分这一章有什么新内容
    2. 动态属性的数据角力
      1. 使用动态属性探索类似json的数据
      2. 无效属性名称问题
      3. 使用__new__灵活创建对象
    3. 计算属性
      1. 步骤1:数据驱动的属性创建
      2. 步骤2:检索链接记录的属性
      3. 步骤3:覆盖现有属性的属性
      4. 步骤4:定制属性缓存
      5. 步骤5:用functools缓存属性
    4. 使用属性进行属性验证
      1. 选择#1:类的一个项目在一个订单
      2. LineItem示例#2:验证属性
    5. 正确看待属性
      1. 属性覆盖实例属性
      2. 属性的文档
    6. 属性工厂编码
    7. 处理属性删除
    8. 属性处理的基本属性和函数
      1. 影响属性处理的特殊属性
      2. 用于属性处理的内置函数
      3. 属性处理的特殊方法
    9. 章总结
    10. 进一步的阅读
  29. 24.属性描述符
    1. 188比分直播篮球比分这一章有什么新内容
    2. 描述符示例:属性验证
      1. 例子#3:一个简单的描述符
      2. 步骤4:自动存储属性名称
      3. 例5:一个新的描述符类型
    3. 覆盖与非覆盖描述符相符
      1. 压倒一切的描述符
      2. 重写没有__get__的描述符
      3. Non-overriding描述符
      4. 重写类中的描述符
    4. 方法描述符
    5. 描述符的使用技巧
    6. 描述符文档字符串和覆盖删除
    7. 章总结
    8. 进一步的阅读

产品信息

  • 标题:流利的Python,第二版
  • 作者(年代):卢西亚诺Ramalho
  • 上映日期(待定):11月2021年11月
  • 出版商(s):O ' reilly Media, Inc .)
  • 国际标准图书编号:9781492056355