流畅的Python

流畅的Python

编辑推荐

如果你想学习python,这是一本绕不开的好书。

内容简介

《流畅的Python》一书致力于帮助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开发,以及大规模数据处理等方面有多年经验。

章节目录

版权信息

O'Reilly Media, Inc. 介绍

业界评论

前言

目标读者

非目标读者

本书的结构

以实践为基础

硬件

杂谈:个人的一点看法

Python术语表

Python版本表

排版约定

使用代码示例

Safari® Books Online

联系我们

致谢

电子书

第一部分 序幕

第1章 Python 数据模型

1.1 一摞Python风格的纸牌

1.2 如何使用特殊方法

1.3 特殊方法一览

1.4 为什么len不是普通方法

1.5 本章小结

1.6 延伸阅读

第二部分 数据结构

第2章 序列构成的数组

2.1 内置序列类型概览

2.2 列表推导和生成器表达式

2.3 元组不仅仅是不可变的列表

2.4 切片

2.5 对序列使用+和*

2.6 序列的增量赋值

2.7 list.sort方法和内置函数sorted

2.8 用bisect来管理已排序的序列

2.9 当列表不是首选时

2.10 本章小结

2.11 延伸阅读

第3章 字典和集合

3.1 泛映射类型

3.2 字典推导

3.3 常见的映射方法

3.4 映射的弹性键查询

3.5 字典的变种

3.6 子类化UserDict

3.7 不可变映射类型

3.8 集合论

3.9 dict和set的背后

3.10 本章小结

3.11 延伸阅读

第4章 文本和字节序列

4.1 字符问题

4.2 字节概要

4.3 基本的编解码器

4.4 了解编解码问题

4.5 处理文本文件

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

4.7 Unicode文本排序

4.8 Unicode数据库

4.9 支持字符串和字节序列的双模式API

4.10 本章小结

4.11 延伸阅读

第三部分 把函数视作对象

第5章 一等函数

5.1 把函数视作对象

5.2 高阶函数

5.3 匿名函数

5.4 可调用对象

5.5 用户定义的可调用类型

5.6 函数内省

5.7 从定位参数到仅限关键字参数

5.8 获取关于参数的信息

5.9 函数注解

5.10 支持函数式编程的包

5.11 本章小结

5.12 延伸阅读

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

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

6.2 “命令”模式

6.3 本章小结

6.4 延伸阅读

第7章 函数装饰器和闭包

7.1 装饰器基础知识

7.2 Python何时执行装饰器

7.3 使用装饰器改进“策略”模式

7.4 变量作用域规则

7.5 闭包

7.6 nonlocal声明

7.7 实现一个简单的装饰器

7.8 标准库中的装饰器

7.9 叠放装饰器

7.10 参数化装饰器

7.11 本章小结

7.12 延伸阅读

第四部分 面向对象惯用法

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

8.1 变量不是盒子

8.2 标识、相等性和别名

8.3 默认做浅复制

8.4 函数的参数作为引用时

8.5 del和垃圾回收

8.6 弱引用

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

8.8 本章小结

8.9 延伸阅读

第9章 符合Python风格的对象

9.1 对象表示形式

9.2 再谈向量类

9.3 备选构造方法

9.4 classmethod与staticmethod

9.5 格式化显示

9.6 可散列的Vector2d

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

9.8 使用__slots__ 类属性节省空间

9.9 覆盖类属性

9.10 本章小结

9.11 延伸阅读

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

10.1 Vector类:用户定义的序列类型

10.2 Vector类第1版:与Vector2d类兼容

10.3 协议和鸭子类型

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

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

10.6 Vector类第4版:散列和快速等值测试

10.7 Vector类第5版:格式化

10.8 本章小结

10.9 延伸阅读

第11章 接口:从协议到抽象基类

11.1 Python文化中的接口和协议

11.2 Python喜欢序列

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

11.4 Alex Martelli的水禽

11.5 定义抽象基类的子类

11.6 标准库中的抽象基类

11.7 定义并使用一个抽象基类

11.8 Tombola子类的测试方法

11.9 Python使用register的方式

11.10 鹅的行为有可能像鸭子

11.11 本章小结

11.12 延伸阅读

第12章 继承的优缺点

12.1 子类化内置类型很麻烦

12.2 多重继承和方法解析顺序

12.3 多重继承的真实应用

12.4 处理多重继承

12.5 一个现代示例:Django通用视图中的混入

12.6 本章小结

12.7 延伸阅读

第13章 正确重载运算符

13.1 运算符重载基础

13.2 一元运算符

13.3 重载向量加法运算符+

13.4 重载标量乘法运算符*

13.5 众多比较运算符

13.6 增量赋值运算符

13.7 本章小结

13.8 延伸阅读

第五部分 控制流程

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

14.1 Sentence类第1版:单词序列

14.2 可迭代的对象与迭代器的对比

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

14.4 Sentence类第3版:生成器函数

14.5 Sentence类第4版:惰性实现

14.6 Sentence类第5版:生成器表达式

14.7 何时使用生成器表达式

14.8 另一个示例:等差数列生成器

14.9 标准库中的生成器函数

14.10 Python 3.3中新出现的句法:yield from

14.11 可迭代的归约函数

14.12 深入分析iter函数

14.13 案例分析:在数据库转换工具中使用生成器

14.14 把生成器当成协程

14.15 本章小结

14.16 延伸阅读

第15章 上下文管理器和else 块

15.1 先做这个,再做那个:if语句之外的else块

15.2 上下文管理器和with块

15.3 contextlib模块中的实用工具

15.4 使用@contextmanager

15.5 本章小结

15.6 延伸阅读

第16章 协程

16.1 生成器如何进化成协程

16.2 用作协程的生成器的基本行为

16.3 示例:使用协程计算移动平均值

16.4 预激协程的装饰器

16.5 终止协程和异常处理

16.6 让协程返回值

16.7 使用yield from

16.8 yield from的意义

16.9 使用案例:使用协程做离散事件仿真

16.10 本章小结

16.11 延伸阅读

第17章 使用future处理并发

17.1 示例:网络下载的三种风格

17.2 阻塞型I/O和GIL

17.3 使用concurrent.futures模块启动进程

17.4 实验Executor.map方法

17.5 显示下载进度并处理错误

17.6 本章小结

17.7 延伸阅读

第18章 使用asyncio包处理并发

18.1 线程与协程对比

18.2 使用asyncio和aiohttp包下载

18.3 避免阻塞型调用

18.4 改进asyncio下载脚本

18.5 从回调到future和协程

18.6 使用asyncio包编写服务器

18.7 本章小结

18.8 延伸阅读

第六部分 元编程

第19章 动态属性和特性

19.1 使用动态属性转换数据

19.2 使用特性验证属性

19.3 特性全解析

19.4 定义一个特性工厂函数

19.5 处理属性删除操作

19.6 处理属性的重要属性和函数

19.7 本章小结

19.8 延伸阅读

第20章 属性描述符

20.1 描述符示例:验证属性

20.2 覆盖型与非覆盖型描述符对比

20.3 方法是描述符

20.4 描述符用法建议

20.5 描述符的文档字符串和覆盖删除操作

20.6 本章小结

20.7 延伸阅读

第21章 类元编程

21.1 类工厂函数

21.2 定制描述符的类装饰器

21.3 导入时和运行时比较

21.4 元类基础知识

21.5 定制描述符的元类

21.6 元类的特殊方法 __prepare__

21.7 类作为对象

21.8 本章小结

21.9 延伸阅读

结语

延伸阅读

附录A 辅助脚本

A.1 第3章:in运算符的性能测试

A.2 第3章:比较散列后的位模式

A.3 第9章:有或没有 __slots__ 时,RAM的用量

A.4 第14章:转换数据库的isis2json.py脚本

A.5 第16章:出租车队离散事件仿真

A.6 第17章:加密示例

A.7 第17章:flags2系列HTTP客户端示例

A.8 第19章:处理OSCON日程表的脚本和测试

Python 术语表

作者简介

关于封面

流畅的Python是2017年由人民邮电出版社出版,作者[巴西]LucianoRamalho。

得书感谢您对《流畅的Python》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
Go语言趣学指南 电子书

Go是谷歌公司为了解决重大问题而设计的一种小型编程语言。完成大型项目需要大型团队,而大型团队中团队成员的经验水平往往各不相同。Go是一种小巧却功能强大的语言,它能够被任何人理解...
第一行代码:Android(第3版) 电子书

本书详解Android开发知识,基于Android10.0、Kotlin编写,适合初学者和进阶开发者。
Python算法详解 电子书

-以“从入门到精通”的写作方法构建内容,让读者入门容易。为了使读者能够完全看懂本书的内容,本书遵循“从入门到精通”基础类图书的写法,循序渐进地讲解算法的知识。-破解语言难点,以...
Python 3破冰人工智能:从入门到实战 电子书

数学基础:从历年数学建模竞赛入手,解读人工智能中的数学方法。编程实践:100余个代码实例,全面讲解网络爬虫、数据存储与数据分析等内容。算法应用:实战案例辅以丰富图解,详尽分析人...
深入浅出Spring Boot 2.x 电子书

本书章节编排合理,深入浅出地阐述了SpringBoot2.x的原理与应用,以及当今较为流行的微服务系统经常用到的技术及原理,内容通俗易懂。
一个64位操作系统的设计与实现 电子书

基于IntelCorei7处理器的64位多核操作系统,引入诸多Linux内核的设计精髓。
统计思维:程序员数学之概率统计(第2版) 电子书

本书介绍了如何借助计算而非数学方法,使用Python语言对数据进行统计分析。