Вступить в клуб →
сложнаявопросPython: типы, ООП и структуры данных

После добавления сравнения по коду объект перестал класться в множество

В класс добавили сравнение по артикулу, чтобы искать дубли:

class Sku:
    def __init__(self, code):
        self.code = code

    def __eq__(self, other):
        return self.code == other.code

seen = {Sku("A1")}
print(Sku("A1") in seen)

Раньше похожий код работал. Что будет теперь?

  • TypeError: unhashable type — объект больше нельзя положить в множество
  • True — поиск в множестве пойдёт через новый __eq__
  • False — множество сравнивает элементы по объекту, а не по коду
  • True, но только для строковых артикулов; для чисел вернёт False

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела