内容简介
第1章 面向对象设计
面向对象
对象和类
指定属性和行为
数据描述对象
行为就是动作
隐藏细节并创建公共接口
组合
继承
继承提供抽象
多重继承
案例学习
练习
总结
第2章 Python对象
创建Python类
添加属性
让它做点什么
初始化对象
自我解释
模块和包
组织模块
组织模块内容
谁可以访问我的数据
第三方库
案例学习
练习
总结
第3章 对象相似时
基本的继承
扩展内置对象
重写和super
多重继承
钻石型继承问题
不同集合的参数
多态
抽象基类
使用抽象基类
创建抽象基类
魔术揭秘
案例学习
练习
总结
第4章 异常捕获
抛出异常
抛出一个异常
异常的作用
处理异常
异常的层级
定义我们自己的异常
案例学习
练习
总结
第5章 何时使用面向对象编程
将对象看作对象
通过属性向类数据添加行为
属性的细节
装饰器——另一种创建属性的方法
决定何时使用属性
管理员对象
移除重复代码
实践
案例学习
练习
总结
第6章 Python数据结构
空对象
元组和命名元组
命名元组
字典
字典用例
使用defaultdict
列表
列表排序
集合
扩展内置类型
队列
FIFO队列
LIFO队列
优先级队列
案例学习
练习
总结
第7章 Python面向对象的捷径
Python内置函数
len()函数
反转函数
枚举
文件I/O
放在上下文管理器中
方法重载的另一种方式
默认参数
变量参数列表
参数解包
函数也是对象
将函数作为属性
可调用对象
案例学习
练习
总结
第8章 字符串与序列化
字符串
字符串操作
字符串格式化
字符串是Unicode
可变字节字符串
正则表达式
匹配模式
从正则表达式中获取信息
序列化对象
自定义序列化
序列化Web对象
案例学习
练习
总结
第9章 迭代器模式
设计模式简介
迭代器
迭代器协议
推导
列表推导
集合与字典推导
生成器表达式
生成器
从另一个可迭代对象中产生
协程
回到日志解析
关闭协程并抛出异常
协程、生成器与函数的关系
案例学习
练习
总结
第10章 Python设计模式Ⅰ
装饰器模式
装饰器的例子
Python中的装饰器
观察者模式
观察者模式的例子
策略模式
策略模式的例子
Python中的策略
状态模式
状态模式的例子
状态与策略
状态转换作为协程
单例模式
单例模式的实现
模板模式
模板模式的例子
练习
总结
第11章 Python设计模式Ⅱ
适配器模式
门面模式
享元模式
命令模式
抽象工厂模式
复合模式
练习
总结
第12章 测试面向对象程序
为什么要测试
测试驱动开发
单元测试
断言方法
减少模板代码并进行清理
组织和运行测试
忽略失败的测试
用pytest进行测试
一种完成设置和清理的方式
一种完全不同的设置变量的方式
在pytest中跳过测试
模拟昂贵的对象
多少测试才足够
案例学习
实现它
练习
总结
第13章 并发
线程
线程的诸多问题
线程的超常开支
多进程
多进程池
队列
多进程的问题
Future对象
AsyncIO
AsyncIO实践
读取AsyncIO中的Future对象
在网络编程中使用AsyncIO
用executor封装阻塞代码
流
案例学习
练习
总结