[Python-Dev] Enum: subclassing?

Steven D'Aprano steve at pearwood.info
Thu May 2 03:47:25 CEST 2013


On 02/05/13 06:45, Antoine Pitrou wrote:
> I was talking in the context where subclassing is allowed. I don't
> think there's a use-case for subclassing of non-empty enums. On the
> other hand, empty enums should probably allow subclassing (they are
> "abstract base enums", in a way).

If you google for "subclassing enums" you will find many people asking
how to subclass enums.
Apparently Apache's Java allows subclassing, if I'm reading this correctly:
http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/enums/Enum.html
So do Scala and Kotlin.
The most obvious use-case for subclassing enums is to extend them:
class Directions(Enum):
 north = 1
 east = 2
 west = 3
 south = 4
class Directions3D(Directions):
 up = 5
 down = 6
If you allow enums to have methods, then the most obvious use-case is to add or extend methods, no different to any other class.
-- 
Steven


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /