集合类的__eq__方法的一个很好的例子是什么?

Jas*_*ker 6 python api collections equality

我正在研究一个我想为其创建__eq__方法的集合类.事实证明它比我想象的要细致入微,而且我注意到内置集合类的工作原理有几个错综复杂.

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

S.L*_*ott 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)) )
Run Code Online (Sandbox Code Playgroud)


And*_*lke 1

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