Глава 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, без установки