Pythonのenumモジュールは、列挙型(Enumeration)を提供する強力なツールです。本記事では、enumの基本的な使い方から応用まで、わかりやすく解説します。
enumは、関連する定数のグループを定義するためのPythonの機能です。これにより、コードの可読性が向上し、エラーを減らすことができます
まず、enumモジュールをインポートします
from enum import Enum
次に、Enumクラスを継承して独自の列挙型を定義します
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
定義したEnumは以下のように使用できます
favorite_color = Color.RED
print(favorite_color) # 出力: Color.RED
print(favorite_color.name) # 出力: RED
print(favorite_color.value) # 出力: 1
enum.auto()
を使用すると、値を自動的に割り当てることができます
from enum import Enum, auto
class Direction(Enum):
NORTH = auto()
SOUTH = auto()
EAST = auto()
WEST = auto()
重複する値を禁止するには、@unique
デコレータを使用します
from enum import Enum, unique
@unique
class Status(Enum):
PENDING = 1
APPROVED = 2
REJECTED = 3
整数との比較を可能にするには、IntEnum
を使用します
from enum import IntEnum
class Grade(IntEnum):
A = 90
B = 80
C = 70
D = 60
F = 0
print(Grade.A > Grade.B) # 出力: True
enum種類 | 説明 | 主な使用用途 |
---|---|---|
Enum | 基本的な列挙型 | 一般的な定数のグループ化 |
IntEnum | 整数と比較可能な列挙型 | 数値的な順序や比較が必要な場合 |
Flag | ビットフラグとして使用可能な列挙型 | 複数の状態を組み合わせる場合 |
IntFlag | 整数とビット演算が可能な列挙型 | ビットマスクやフラグの組み合わせ |
Pythonのenumは、コードの品質と可読性を向上させる強力なツールです。適切に使用することで、より堅牢で保守性の高いコードを書くことができます。列挙型の種類や使用場面を理解し、プロジェクトに最適なenum実装を選択することが重要です