[Python-Dev] enum discussion: can someone please summarize open issues?
steve at pearwood.info
Mon Apr 29 01:37:44 CEST 2013
On 29/04/13 06:02, Guido van Rossum wrote:
> My opinions added
> On Sun, Apr 28, 2013 at 12:32 PM, Ethan Furman <ethan at stoneleaf.us> wrote:
>> Definite Issues:
>> - should enum items be of the type of the Enum class? (i.e. type(SPRING)
>> is Seasons)
> IMO Yes.
>> - should an enum item be selectable via __call__ instead of __getitem__
>> (i.e. Seasons(3) is AUTUMN)
> No opinion.
Does anyone know why this is even an issue? Is this pure bike-shedding over the API, or are there
technical reasons for choosing one over the other?
>> - should days_in_year be enumerated?
> Yes. (If you don't want it to be, and it's not a method/descriptor,
> move it out of the class.)
+1, but see below.
>> - should avg_temp be enumerated?
> IMO No.
>> - for the above two, how should they be included/excluded?
> IMO Everything should be enumerated except
> (a) things with a __get__() method (i.e. descriptors)
> (b) __dunder__ names
+1 on excluding dunder names. +0 on excluding things with __get__.
I have also suggested that that the enum package provide a decorator
which can be used to explicitly flag values to *not* be turned into
enum values. See here:
Even if the Enum class doesn't support this feature, I ask that it be
written in such a way that a subclass could add it (i.e. please expose
a public method for deciding what to exclude).
More information about the Python-Dev