第 9 章 符合Python风格的对象

绝对不要使用两个前导下划线,这是很烦人的自私行为。1

——Ian Bicking
pip、virtualenv 和 Paste 等项目的创建者

1摘自 Paste 的风格指南(http://pythonpaste.org/StyleGuide.html)。

得益于 Python 数据模型,自定义类型的行为可以像内置类型那样自然。实现如此自然的行为,靠的不是继承,而是鸭子类型(duck typing):我们只需按照预定行为实现对象所需的方法即可。

前一章分析了很多内置对象的结构和行为,这一章则自己定义类,而且让类的行为跟真正的 Python 对象一样。

这一章接续第 1 章,说明如何实现在很多 Python 类型中常见的特殊方法。

本章包含以下话题:

我们将开发一个简单的二维欧几里得向量类型,在这个过程中涵盖上述全部话题。

在实现这个类型的中间阶段,我们会讨论两个概念:

我们从对象表示形式函数开始。