Что является хорошим примером метода __eq__ для класса коллекции? - PullRequest
6 голосов
/ 13 октября 2009

Я работаю над классом коллекции, для которого хочу создать метод __eq__. Оказалось, что это более нюанс, чем я думал, и я заметил несколько сложностей, касающихся того, как работают встроенные классы коллекций.

Что действительно помогло бы мне больше всего, так это хороший пример. Существуют ли чистые реализации Python метода __eq__ в стандартной библиотеке или в сторонних библиотеках?

Ответы [ 2 ]

7 голосов
/ 13 октября 2009

Детали тяжелые. Детали должны быть простого делегирования.

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 голос
/ 15 октября 2009

Взгляните на "collection.py". Последняя версия (из управления версиями) реализует OrderedDict с __eq__. Также есть __eq__ в sets.py

...