擅长:python、mysql、java
<p>首先,<code>__hash__(myNewMyClassObj)</code>被调用。如果在字典中找不到具有相同哈希的对象,Python假定<code>myNewMyClassObj</code>不在字典中。(请注意,Python要求每当两个对象的<code>__eq__</code>计算结果为相等时,它们的<code>__hash__</code>必须相同。)</p>
<p>如果在字典中找到一些具有相同<code>__hash__</code>的对象,则对每个对象调用<code>__eq__</code>。如果<code>__eq__</code>对它们中的任何一个求值为相等,<code>myNewMyClassObj in dict_</code>返回True。在</p>
<p>因此,您只需要确保<code>__eq__</code>和{<cd4>}都很快。在</p>
<p>对于您的后续问题:是,<code>dict_</code>只存储一组等价的<code>MyClass</code>对象(由<code>__eq__</code>定义)中的一个。(正如设定的那样。)</p>
<p>注意,<code>__eq__</code>只对具有相同哈希并分配给同一个bucket的对象调用。这类对象的数量通常很小(<code>dict</code>实现确保了这一点)。因此,您仍然(大致上)具有<code>O(1)</code>查找性能。在</p>