При реализации класса с несколькими свойствами (например, в примере с игрушкой ниже) лучший способ обработки хэширования?
Я думаю, что __eq__
и __hash__
должны быть согласованными, но как реализовать правильную хеш-функцию, которая способна обрабатывать все свойства?
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))
Я читал на этом вопросе, что кортежи хешируются, поэтому мне было интересно, было ли что-то вроде приведенного выше примера разумным. Это?