Recommended way to implement __eq__ and __hash__
问题 The python documentation mentions that if you override __eq__ and the object is immutable, you should also override __hash__ in order for the class to be properly hashable. In practice, when I do this I often end up with code like class MyClass(object): def __init__(self, a, b): self.a = a self.b = b def __eq__(self, other): if type(other) is type(self): return (self.a == other.a) and (self.b == other.b) else: return False def __hash__(self): return hash((self.a, self.b)) This is somewhat