Le Tue, 23 Apr 2013 10:24:18 -0400, "R. David Murray" <rdmur...@bitdance.com> a écrit : > > > > I'm having a problem with the proposed implementation. I haven't > > found any mention of it, so apologies if this has already been > > discussed: > > > > >>> from flufl.enum import * > > >>> class C(Enum): > > ... a = 1 > > ... b = 2 > > ... > > >>> C.a.__class__ > > <class 'flufl.enum._enum.EnumValue'> > > >>> isinstance(C.a, C) > > False > > >>> isinstance(C(1), C) > > False > > > > It would really be better if instances were actual instances of the > > class, IMO. > > The first False looks correct to me, I would not expect an enum value > to be an instance of the class that holds it as an attribute. The > second certainly looks odd, but what does it even mean to have an > instance of an Enum class?
Perhaps I should have added some context: >>> class C(Enum): ... a = 1 ... b = 2 ... >>> C(1) <EnumValue: C.a [value=1]> >>> C[1] <EnumValue: C.a [value=1]> It is simply the same as a __getattr__ call. That said, I don't see why it wouldn't make sense for an enum value to be an instance of that class. It can be useful to write `isinstance(value, MyEnumClass)`. Also, any debug facility which has a preference for writing out class names would produce a better output than the generic "EnumValue". Regards Antoine. _______________________________________________ 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