第2章 与Python无缝集成——基本特殊方法

    Python中有一些特殊方法,它们允许我们的类和Python更好地集成。在标准库参考(Standard Library Reference)中,它们被称为基本特殊方法,是与Python的其他特性无缝集成的基础。

    例如,我们用字符串来表示一个对象的值。Object基类包含了repr()str()的默认实现,它们提供了一个对象的字符串描述。遗憾的是,这些默认的实现不够详细。我们几乎总会想重写它们中的一个或两个。我们还会介绍format(),它更加复杂一些,但是和上面两个方法的作用相同。

    我们还会介绍其他的转换方法,尤其是hash()bool()bytes()。这些方法可以把一个对象转换成一个数字、一个布尔值或者一串字节。例如,当我们实现了bool(),我们就可以像下面这样在if语句中使用我们的对象:if someobject:

    接下来,我们会介绍实现了比较运算符的几个特殊方法:lt()le()eq()ne()gt()ge()

    当我们定义一个类时,几乎总是需要使用这些基本的特殊方法。

    我们会在最后介绍new()del(),因为它们的使用更加复杂,而且相比于其他的特殊方法,我们并不会经常使用它们。

    我们会详细地介绍如何用这些特殊方法来扩展一个简单类。我们需要了解从object继承而来的默认行为,这样,我们才能理解应该在什么时候使用重写,以及如何使用它。