Глава 6. Ой-ой-ой: объекты и классы
Таблица 6.1. Магические методы для сравнения
__eq__(self, other)
self == other
__ne__(self, other)
self != other
__lt__(self, other)
self < other
__gt__(self, other)
self > other
__le__(self, other)
self <= other
__ge__(self, other)
self >= other
Таблица 6.2. Магические методы для вычислений
__add__(self, other)
self + other
__sub__(self, other)
self — other
__mul__(self, other)
self * other
__floordiv__(self, other)
self // other
__truediv__(self, other)
self / other
__mod__(self, other)
self % other
__pow__(self, other)
self ** other
Не обязательно использовать математические операторы вроде + (магический
метод __add__()) и – (магический метод __sub__()) только для работы с числами.
Например, строковые объекты используют + для конкатенации и * для дуплици-
рования. Существует множество других методов, задокументированных онлайн по
адресу http://bit.ly/pydocs-smn. Наиболее распространенные из них представлены
в табл. 6.3.
Таблица 6.3. Другие магические методы
__str__(self)
str(self)
__repr__(self)
repr(self)
__len__(self)
len(self)
Вы можете обнаружить, что, помимо __init__(), часто пользуетесь методом
__str__(). Он нужен для того, чтобы выводить данные на экран. Этот метод ис-
пользуется методами print(), str() и строками форматирования, о которых вы
можете прочитать в главе 7. Интерактивный интерпретатор применяет функцию
__repr__() для того, чтобы выводить на экран переменные. Если вы не определите
хотя бы один из этих методов, то увидите на экране ваш объект, преобразованный
в строку по умолчанию: