Ethan Furman added the comment:

Here's the current __eq__ method:

    def __eq__(self, other):
        if type(other) is self.__class__:
            return self is other
        return NotImplemented

It is, in fact, using identity and not value equality.

I'm thinking we should either remove and go with the default __eq__, or change 
it to value equality.  One possible reason to use value equality is that pickle 
protocols below 2 will actually create duplicate Enum members, breaking 
identity tests; if someone is stuck using pickle that way, they could still use 
Enum with `==` and not `is`.

Identity tests are already incorporated in many of the existing tests.

Gentlemen, what do you think?

----------
assignee:  -> ethan.furman
nosy: +barry, eli.bendersky, ethan.furman
type:  -> behavior

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue19249>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to