Побочные эффекты разрыва связи между __eq__ и __hash__ в Python 3 - PullRequest
0 голосов
/ 05 мая 2018

Согласно документации Python 3 , объекты, которые сравниваются одинаково, должны иметь одинаковое значение хеш-функции. Однако, нередко иметь два разных изменяемых объекта, которые в определенный момент времени можно сравнивать, и вы все равно можете использовать их в качестве разных ключей в словаре, например.

В таких случаях можно переопределить методы __eq__() и __hash__(), чтобы разрешить это различие, и таким образом нарушить предположение a==b → hash(a)==hash(b)? Или лучше определить новый метод "equals()" с той же семантикой? Каковы возможные побочные эффекты разрыва этого отношения?

...