小册描述
目录
- 第 13章 性能测量和大O算法分析
- 13.1 timeit模块
- 13.2 cProfile分析器
- 13.3 大O算法分析
- 13.4 大O阶
- 13.4.1 使用书架打比方描述大O阶
- 13.4.2 大O 测量的是最坏情况
- 13.5 确定代码的大O 阶
- 13.5.1 为什么低阶项和系数不重要
- 13.5.2 大O 分析实例
- 13.5.3 常见函数调用的大O 阶
- 13.5.4 一眼看出大O 阶
- 13.5.5 当n 很小时,大O并不重要,而n通常都很小
- 第 14章 项目实战
- 14.1 汉诺塔
- 14.1.1 汉诺塔输出
- 14.1.2 汉诺塔源代码
- 14.1.3 汉诺塔编写代码
- 14.2 四子棋
- 14.2.1 四子棋输出
- 14.2.2 四子棋源代码
- 14.2.3 四子棋编写代码
- 第 15章 面向对象编程和类
- 15.1 拿现实世界打比方:填写表格
- 15.2 基于类创建对象
- 15.3 创建一个简单的类——WizCoin
- 15.3.1 方法__init__()和self
- 15.3.2 特性
- 15.3.3 私有特性和私有方法
- 15.4 函数type()和特性__qualname__
- 15.5 非OOP 和OOP 的例子:井字棋
- 15.6 为现实世界设计类是一件难事儿
- 第 16章 面向对象编程和继承
- 16.1 继承的原理
- 16.1.1 重写方法
- 16.1.2 super()函数
- 16.1.3 倾向于组合而非继承
- 16.1.4 继承的缺点
- 16.2 函数isinstance()和issubclass()
- 16.3 类方法
- 16.4 类特性
- 16.5 静态方法
- 16.6 何时应该使用类和静态的面向对象特性
- 16.7 面向对象的行话
- 16.7.1 封装
- 16.7.2 多态性
- 16.8 何时不应该使用继承
- 16.9 多重继承
- 16.10 方法解析顺序
- 第 17章 Python 风格的面向对象编程:属性和魔术方法
- 17.1 属性
- 17.1.1 将特性转换为属性
- 17.1.2 使用setter 验证数据
- 17.1.3 只读属性
- 17.1.4 什么时候应该使用属性
- 17.2 Python 的魔术方法
- 17.2.1 字符串表示魔术方法
- 17.2.2 数值魔术方法
- 17.2.3 反射数值魔术方法
- 17.2.4 原地魔术方法
- 17.2.5 比较魔术方法