When implementing a class with multiple properties (like in the toy example below), what is the best way to handle hashing?
I guess that the __eq__
and __hash__
should be consistent, but how to implement a proper hash function that is capable of handling all the properties?
class AClass:
def __init__(self):
self.a = None
self.b = None
def __eq__(self, other):
return other and self.a == other.a and self.b == other.b
def __ne__(self, other):
return not self.__eq__(other)
def __hash__(self):
return hash((self.a, self.b))
I read on this question that tuples are hashable, so I was wondering if something like the example above was sensible. Is it?