def __hash__(self):
return 1
b1 = Bar()
b2 = Bar()
print(hash(b1) == hash(b2))
print({b1: 123, b2: 123})
class Bar: def __hash__(self): return 11 b1 = Bar() x = {b1: 123} b2 = Bar() x.update({b2: 123}) print(b1.__hash__()) print(b2.__hash__()) print(x.keys())
а почему должны быть два одинаковых?
хешь то переопределен
так потому что это внатуре 2 разных ключа
и что? равенство хешей не означает равенство значений. ну вы вызвали коллизию, искусственно. питон ее разрулил, как и должен был
Обсуждают сегодня