On Apr 23, 2013, at 03:44 PM, Antoine Pitrou wrote: >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.
Ignore the single argument call syntax for Enums please. As Eli pointed out, you have getitem syntax for this and the single argument call syntax is deprecated. It will be removed in a future version of flufl.enum and need not appear in stdlib enum. TOOWTDI. C.a and C[1] return the same object, and it seems perfectly natural to me that this object is *not* an instance of the enum class. In fact, it seems completely weird to me that C.a would be an instance of the enum class. It seems very rare that a class has attributes that are instances of that class. It's not even easy to do with traditional syntax. class Foo: a = Foo() b = Foo() c = Foo() Huh? -Barry _______________________________________________ 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