Enum questions.

Marko Rauhamaa marko at pacujo.net
Wed Apr 13 10:07:46 EDT 2016


Grant Edwards <grant.b.edwards at gmail.com>:

> On 2016-04-13, Michael Selik <michael.selik at gmail.com> wrote:
>> An Enum corresponds to "nominal" data that is coded as a number
>> simply for storage rather than meaning.
>
> FWIW, as an old Pascal programmer, I too would have been surprised
> that an "enum" is not ordinal and doesn't support a next/prev and
> iteration.
>
> As an old C programmer, not so much. :)

>From the Pascal point of view, the "number for storage" seems odd. Why
not:

    class Color(enum.Enum):
        red = "red"
        blue = "blue"
        green = "green"

or:

    class Color(enum.Enum):
        red = object()
        blue = object()
        green = object()

or:

    class Color(enum.Enum):
        red
        blue
        green


This last one is to the point but raises a NameError.


Personally, I have not found enum.Enum all that appealing. If I have
needed such enums in my code, I have usually just defined:

    class MyClass:
        RED = "RED"
        BLUE = "BLUE"
        GREEN = "GREEN"
            

Marko



More information about the Python-list mailing list