Назад к вопросам
Баланс-Платформа
Junior — Middle
68
Каким образом можно сделать класс совместимым с механизмом хеширования и сравнения объектов?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Чтобы класс был совместим с механизмом хеширования и сравнения объектов в Python, нужно переопределить методы __eq__ и __hash__.
__eq__(self, other)— определяет логику сравнения объектов на равенство.__hash__(self)— возвращает хеш-значение объекта, которое используется в хеш-таблицах (например, в множествах и словарях).
Важно, что если объекты равны (__eq__ возвращает True), то их хеши должны совпадать.
Пример:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __eq__(self, other):
if not isinstance(other, Point):
return False
return self.x == other.x and self.y == other.y
def __hash__(self):
return hash((self.x, self.y))
Теперь объекты Point можно использовать в множествах и как ключи словарей.