PythonのEnumクラスからすべての値を取得する方法について説明します。Enumは、一連のシンボリック名(メンバー)を一意の定数値にマッピングし、比較のためのこれらの値を追跡するための便利な方法を提供します。
Enumクラスの値をリストとして取得する
PythonのEnumクラスからすべての値を取得する最も簡単な方法は、リスト内包表記を使用することです。以下に例を示します。
from enum import Enum
class Color(Enum):
RED = 1
BLUE = 2
# Enumのすべての値をリストとして取得
values = [e.value for e in Color]
print(values) # Output: [1, 2]
このコードでは、Color
Enumのすべてのメンバーを反復処理し、各メンバーの値を新しいリストに追加しています。
Enumクラスを拡張して値を取得する
別の方法として、Enumクラスを拡張して新しいメソッドを追加することもできます。このメソッドは、Enumクラスのすべての値をリストとして返します。以下に例を示します。
from enum import Enum
class ExtendedEnum(Enum):
@classmethod
def list(cls):
return list(map(lambda c: c.value, cls))
class Color(ExtendedEnum):
RED = 1
BLUE = 2
print(Color.list()) # Output: [1, 2]
このコードでは、新しいlist
メソッドを持つExtendedEnum
クラスを作成しました。このメソッドは、Enumクラスのすべての値をリストとして返します。その後、この拡張されたEnumクラスを使用して新しいEnumクラスColor
を作成しました。
以上がPythonのEnumクラスからすべての値を取得する方法です。これらのテクニックを使用すると、Enumクラスの値を効率的に操作できます。