擅长:python、mysql、java
<p>实现<code>__hash__()</code>的一种简单、正确的方法是使用键元组。它不会像专门的散列那样快,但是如果您需要,那么您可能应该在C中实现该类型</p>
<p>下面是使用密钥进行哈希和相等的示例:</p>
<pre><code>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
</code></pre>
<p>此外,<a href="https://docs.python.org/3.5/reference/datamodel.html#object.__hash__" rel="noreferrer">documentation of ^{<cd2>}</a>还有更多的信息,这些信息在某些特定情况下可能很有价值。</p>