Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 130

174

Глава 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__() для того, чтобы выводить на экран переменные. Если вы не определите

хотя бы один из этих методов, то увидите на экране ваш объект, преобразованный

в строку по умолчанию: