Enum
Python 3.4 の新機能を使用して作成されたクラスを拡張することは可能ですか? 方法は?
単純なサブクラス化は機能しないようです。次のような例
from enum import Enum
class EventStatus(Enum):
success = 0
failure = 1
class BookingStatus(EventStatus):
duplicate = 2
unknown = 3
TypeError: Cannot extend enumerations
または (最近のバージョンでは)のような例外が発生しますTypeError: BookingStatus: cannot extend enumeration 'EventStatus'
。
BookingStatus
列挙値を再利用してEventStatus
さらに追加するにはどうすればよいでしょうか?
ベストアンサー1
列挙型のサブクラス化は、列挙型がメンバーを定義していない場合にのみ許可されます。
メンバーを定義する列挙型のサブクラス化を許可すると、型とインスタンスのいくつかの重要な不変条件に違反することになります。
https://docs.python.org/3/howto/enum.html#制限付き列挙サブクラス化
それでいいえ、直接的には不可能です。