【Python】使用dict报错“unhashable type”

在编码过程中,将一个自定义类作为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

REFERENCE

whats-a-correct-and-good-way-to-implement-hash

你可能感兴趣的:(python,python)