Junior — Middle
81
Класс қалай хештеу және объектілерді салыстыру механизмдеріне сәйкестендірілуі мүмкін?
Сұралған компаниялар
AI-дан жауап
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 можно использовать в множествах и как ключи словарей.