[Python-Dev] PEP 435 -- Adding an Enum type to the Python standard library (original) (raw)
R. David Murray rdmurray at bitdance.com
Fri Apr 12 17:29:29 CEST 2013
- Previous message: [Python-Dev] PEP 435 -- Adding an Enum type to the Python standard library
- Next message: [Python-Dev] PEP 435 -- Adding an Enum type to the Python standard library
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, 12 Apr 2013 11:02:54 -0400, Barry Warsaw <barry at python.org> wrote:
On Apr 12, 2013, at 03:31 PM, Dirkjan Ochtman wrote: >On Fri, Apr 12, 2013 at 2:55 PM, Eli Bendersky <eliben at gmail.com> wrote: >> >>> Colors.blue >= Colors.green >> Traceback (most recent call last): >> ... >> NotImplementedError > >I like much of this PEP, but the exception type for this case seems >odd to me. Wouldn't a TypeError be more appropriate here? > >Somewhat like this: > >>>> 'a' - 'b' >Traceback (most recent call last): > File "", line 1, in >TypeError: unsupported operand type(s) for -: 'str' and 'str'
Interesting. I'm having a hard time articulating why, but NotImplementedError just feels more right to me in this case.
I think TypeError is more consistent with the rest of Python:
_object() < object()_ Traceback (most recent call last): File "", line 1, in TypeError: unorderable types: object() < object()
You get that automatically if you return NotImplemented from the comparison methods. I don't think you should be explicitly raising NotImplemented.
--David
- Previous message: [Python-Dev] PEP 435 -- Adding an Enum type to the Python standard library
- Next message: [Python-Dev] PEP 435 -- Adding an Enum type to the Python standard library
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]