Ответ 1
Это будет работать из коробки, однако могут быть случаи, когда имеет смысл перегрузить __eq__
, __ne__
и __hash__
. По умолчанию __eq__
будет сравнивать идентификатор объекта. Возможно, это не то, что вы хотите. В этом случае вам нужно позаботиться о том, чтобы равный объект имел равные хэши, и, в идеале, не равный объект имел разные хэши (хотя это не требуется, это просто уменьшает коллизии). Вы всегда должны использовать __ne__
с помощью __eq__
, если у вас нет конкретной причины делать это иначе (это делается для обеспечения логической согласованности).
Кроме того, при перегрузке __hash__
вы должны следить за тем, чтобы хеш не изменялся, пока объект хранится в set
.