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?
 
     
     
     
     
     
    