在编码过程中,将一个自定义类作为dict
的键值,结果编译器报错“unhashable type”:
需要在自定义的类中实现__hash__
函数:
class A:
def __key(self):
return (self.attr_a, self.attr_b, self.attr_c)
def __hash__(self):
return hash(self.__key())
def __eq__(self, other):
if isinstance(other, A):
return self.__key() == other.__key()
return NotImplemented
whats-a-correct-and-good-way-to-implement-hash