It will work out of the box, however, there might be cases, when it makes sense to overload __eq__
, __ne__
and __hash__
. By default, __eq__
will compare for object identity. This might not be what you want. In that case, you have to take care that equal object have equal hashes, and, ideally, not equal object have different hashes (although this is not required, it merely reduces collisions). You should always implement __ne__
using __eq__
, unless you have a specific reason to do otherwise (this is done to ensure logical consistency).
Also, when overloading __hash__
, you have to take care that the hash does not change while the object is stored in a set
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…