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 に答える