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

时间:2009-10-13 13:26:54

标签: python api collections equality

我正在开发一个我想为其创建__eq__方法的集合类。事实证明它比我想象的更加细致入微,而且我注意到内置集合类的工作方式有几个错综复杂。

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

2 个答案:

答案 0 :(得分: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)) )

答案 1 :(得分:1)

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