\

Pythonのenumモジュールは、関連する一連の定数をenumメンバーとして定義することができます。この記事では、Pythonのenumの基本的な使い方と、Python3.6以降で追加された機能について解説します。

Enumクラス

最も基本的なenumEnumクラスです。以下にその使用例を示します。

from enum import Enum

class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

def print_color(color):
    if color == Color.RED:
        print('Color is red')
    elif color == Color.GREEN:
        print('Color is green')
    elif color == Color.BLUE:
        print('Color is blue')
    else:
        print('not Color enum')

if __name__ == '__main__':
    print_color(Color.BLUE)  # Color is blue

このコードでは、ColorというEnumを定義し、その中にREDGREENBLUEというメンバーを定義しています。そして、print_color関数を使って、色を出力しています。

IntEnumクラス

IntEnumクラスはEnumクラスとintのサブクラスになっています。IntEnumのメンバーはint型と比較することができます。

from enum import IntEnum

class Color(IntEnum):
    RED = 1
    GREEN = 2
    BLUE = 3

if __name__ == '__main__':
    print_color(Color.BLUE)  # Color is blue
    print_color(1)  # Color is red

このコードでは、ColorというIntEnumを定義し、その中にREDGREENBLUEというメンバーを定義しています。そして、print_color関数を使って、色を出力しています。

auto関数

auto関数はPython3.6で追加されました。これまでREDGREENBLUEなどのメンバーに直接値を指定していましたが、auto関数を使うと自動で値を割り振ることができます。

from enum import IntEnum, auto

class Color(IntEnum):
    RED = auto()
    GREEN = auto()
    BLUE = auto()

if __name__ == '__main__':
    print(int(Color.RED))  # 1
    print(int(Color.GREEN))  # 2
    print(int(Color.BLUE))  # 3

このコードでは、ColorというIntEnumを定義し、その中にREDGREENBLUEというメンバーを定義しています。そして、それぞれのメンバーの値を出力しています。

以上がPythonのenumの基本的な使い方と、Python3.6以降で追加された機能になります。これらの機能を活用することで、コードの可読性や保守性を向上させることができます。

投稿者 admin

コメントを残す

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