On Wed, 1 May 2013 13:05:53 -0700
Eli Bendersky
On Wed, May 1, 2013 at 11:59 AM, Georg Brandl
wrote: Am 01.05.2013 20:44, schrieb Antoine Pitrou:
On Wed, 01 May 2013 10:21:30 -0700 Ethan Furman
wrote: We may not want to /completely/ disallow subclassing. Consider:
--> class StrEnum(str, Enum): ... '''string enums for Business Basic variable names''' ... --> class Vendors(StrEnum): EnumError: subclassing not allowed
I don't see the point of disallowing subclassing. It sounds like a pointless restriction.
However, perhaps the constructor should forbid the returning of a base type, e.g.:
class Season(Enum): spring = 1
class MySeason(Season): """I look nicer than Season"""
MySeason('spring') ... ValueError: Season.spring is not a MySeason instance
(what this means is perhaps the subclassing of non-empty enum classes should be forbidden)
That's exactly what's implemented in the ref435 code at the moment.
It can't be because __call__ is by-value lookup, not by-name lookup.
Ok, I've mixed up the example. But, still, since Season(1) should return the Season.spring singleton, I don't see any reasonable thing for MySeason(1) to return. Hence the request to raise an exception. Regards Antoine.