On Mon, Mar 2, 2009 at 12:07 PM, Raymond Hettinger <pyt...@rcn.com> wrote:
> Compromise?
>
>    def __eq__(self, other):
>       if isinstance(other, OrderedDict):
>           return all(map(operator.eq, self.items(), other.items()))
>       if isinstance(other, Mapping):
>           return dict.__eq__(self, other)
>       return NotImplemented # Give other a chance; defaults to False
>
> OrderedDict-to-OrderedDict comparisons are order sensitive -- matching your
> intuition
> OrderedDict-to-OtherMappings -- allow me and Armin to have our
> substitutability for dicts.

This sounds fair. Note that dict.__eq__ actually returns
NotImplemented if not isinstance(other, dict) so you could tighten the
test to isinstance(other, dict) if you wanted to.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to