6

我正在研究一个要为其创建__eq__方法的集合类。事实证明它比我想象的要微妙得多,而且我注意到内置集合类的工作方式有几个错综复杂的地方。

真正对我帮助最大的是一个很好的例子。__eq__在标准库或任何第三方库中是否有方法的纯 Python 实现?

4

2 回答 2

7

零件很硬。零件应该是简单的委托。

def __eq__( self, other ):
   if len(self) != len(other):
       # Can we continue?  If so, what rule applies?  Pad shorter?  Truncate longer?
   else:
       return all( self[i] == other[i] for i in range(len(self)) )
于 2009-10-13T13:31:03.070 回答
1

看看“collections.py”。最新版本(来自版本控制)实现了带有 __eq__ 的 OrderedDict。sets.py 中还有一个 __eq__

于 2009-10-14T21:33:03.450 回答