You also need to define __eq__()
in a compatible way with __hash__()
– otherwise, equality will be based on object identity.
On Python 2, it is recommended you also define __ne__
to make !=
consistent with ==
. On Python 3, the default __ne__
implementation will delegate to __eq__
for you.