PythonのEnumを使って、その値をループで取得する方法について説明します。
Enumの値をループで取得する
PythonのEnumは、その値をループで取得することが可能です。以下に具体的なコードを示します。
from enum import Enum
class Color(Enum):
blue = 'blue'
red = 'red'
class Properties(Enum):
height = 'h'
weight = 'w'
colors = Color
for prop in Properties:
print(prop.value)
このコードでは、Properties
というEnumが定義され、その中にColor
という別のEnumが含まれています。for
ループを使ってProperties
の各値を取得し、その値を出力しています。
ネストしたEnumの値を取得する
ネストしたEnum、つまりEnumの中に別のEnumが含まれている場合の値の取得方法について説明します。以下に具体的なコードを示します。
from enum import Enum
from typing import Type
class Color(Enum):
blue = 'blue'
red = 'red'
class Properties(Enum):
height = 'h'
weight = 'w'
colors = Color
def print_enum(e: Type[Enum]) -> None:
for p in e:
try:
assert(issubclass(p.value, Enum))
print_enum(p.value)
except (AssertionError, TypeError):
print(p)
print_enum(Properties)
このコードでは、print_enum
という関数を定義しています。この関数はEnumを引数に取り、そのEnumの値を出力します。もしEnumの値が別のEnumであれば、そのEnumの値も再帰的に出力します。
以上がPythonのEnumの値をループで取得する方法についての説明です。この方法を使えば、Enumの値を効率的に取得することができます。