Hi,

I do not understand the following statement from the python (2 and 3) 
documentation regarding __hash__ and __eq__ methods:
"If a class does not define an __eq__() 
<https://docs.python.org/3/reference/datamodel.html#object.__eq__> method it 
should not define a __hash__() 
<https://docs.python.org/3/reference/datamodel.html#object.__hash__> operation 
either;”
(see https://docs.python.org/3/reference/datamodel.html#object.__hash__ 
<https://docs.python.org/3/reference/datamodel.html#object.__hash__> )

I thought it relates to the second part (“if it defines __eq__() 
<https://docs.python.org/3/reference/datamodel.html#object.__eq__> but not 
__hash__() 
<https://docs.python.org/3/reference/datamodel.html#object.__hash__>, its 
instances will not be usable as items in hashable collections”), which is 
totally clear to me.
But then the implication should be the other way around.

But what is the reason (meaning) for the statement as it is?

Best regards,
Stefan
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to