Встречается на 1% собеседований по Python
Зачем нужен метод __eq__ в Python
Метод __eq__ определяет поведение оператора сравнения == для объектов класса. Без его переопределения Python сравнивает объекты по их идентичности в памяти (как is).
Пример:
python
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
text
def __eq__(self, other):
if not isinstance(other, Point):
return False
return self.x == other.x and self.y == other.yp1 = Point(1, 2)
p2 = Point(1, 2)
print(p1 == p2) # True (сравнение по значению)
print(p1 is p2) # False (разные объекты в памяти)
text
**Нюансы:**
- Всегда проверяйте тип `other` (чтобы избежать ошибок).
- Реализуйте `__hash__`, если объекты иммутабельны и используются в множествах/ключах словарей.
- Метод должен возвращать `NotImplemented`, если сравнение с другим типом невозможно.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы