После добавления сравнения по коду объект перестал класться в множество
В класс добавили сравнение по артикулу, чтобы искать дубли:
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
