我正在开发一个我想为其创建__eq__
方法的集合类。事实证明它比我想象的更加细致入微,而且我注意到内置集合类的工作方式有几个错综复杂。
最能帮助我的是一个很好的例子。在标准库或任何第三方库中是否有__eq__
方法的纯Python实现?
答案 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__