Глава 14 · Создаём объекты реального мира

Практика: применяем __str__ и __eq__

Небольшой класс Tochka — площадка, чтобы закрепить оба метода из раздела 14.21.

Практика: точка на плоскости

Применим оба метода из раздела 14.21 к небольшому классу Tochka — координата x, y:

tochka.py
class Tochka:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __str__(self):
        return f"({self.x}, {self.y})"

    def __eq__(self, other):
        return self.x == other.x and self.y == other.y

a = Tochka(1, 2)
b = Tochka(1, 2)
c = Tochka(5, 5)

print(a)          # (1, 2)
print(a == b)      # True — совпадают координаты
print(a == c)      # False
f-string и __str__ работают вместе
f"Точка: {a}" вызывает тот же самый __str__, что и print(a) — любое место, где Python нужно превратить объект в строку для человека, проходит через этот метод.
★★ Самостоятельная задача
rasstoyanie

Добавьте Tochka метод rasstoyanie_do(self, other), возвращающий евклидово расстояние до другой точки: ((self.x - other.x) ** 2 + (self.y - other.y) ** 2) ** 0.5.

Практика: __str__ и __eq__ на практике
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →