一种简单而正确的实现方法
__hash__()是使用键元组。它不会像专门的哈希那样快,但是如果需要,则应该在C中实现该类型。
这是使用键进行哈希和相等的示例:
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
此外,的文档
__hash__还包含更多信息,这些信息在某些特定情况下可能会很有价值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)