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の値を効率的に取得することができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です