@dataclass
class Event:
title: str
result_1: SubEvent
result_2: SubEvent
id: Optional[int] = None
def __hash__(self):
return hash(self.title)
Добавляю Event('test', SubEvent(1), SubEvent(1)) в сет. Потом добавляю Event('test', SubEvent(2), SubEvent(2)) и оно добавляется в сет, а потом крашится, когда я обращаюсь по первому значению. Что не так?
Реализовывать хэш и не реализовывать совместимый с ним eq — верный путь к головной боли. Это явным образом описано в документации.
Крашится?
Ну ладно, тут "маленькой головной боли", просто продолбается производительность на ровном месте без какой-либо пользы.
Обсуждают сегодня