\

Pythonのenumモジュールは、一連の記号名を一意の値にバインドすることができるEnumクラスを提供しています。これらの記号名は、グローバル変数に似ていますが、より有用なrepr()、グルーピング、型安全性、およびいくつかの他の機能を提供します。

例えば、以下のように週の日を表すEnumを作成することができます。

from enum import Enum

class Weekday(Enum):
    MONDAY = 1
    TUESDAY = 2
    WEDNESDAY = 3
    THURSDAY = 4
    FRIDAY = 5
    SATURDAY = 6
    SUNDAY = 7

また、RGBのプライマリカラーを表すEnumも作成できます。

from enum import Enum

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

Enumのメンバーは、その名前と値を持ちます。例えば、Weekday.MONDAYの名前はMONDAYで、値は1です。

PythonのEnumは、名前/値のペアとしての列挙型を扱う多くの言語とは異なり、振る舞いを追加することができます。たとえば、datetime.dateには、曜日を返すための2つのメソッド、weekday()isoweekday()があります。これらの違いは、一方が0-6を数え、もう一方が1-7を数えることです。これを自分たちで追跡する代わりに、日付から曜日を抽出し、対応するEnumメンバーを返すメソッドをWeekday Enumに追加することができます。

from enum import Enum
from datetime import date

class Weekday(Enum):
    MONDAY = 1
    TUESDAY = 2
    WEDNESDAY = 3
    THURSDAY = 4
    FRIDAY = 5
    SATURDAY = 6
    SUNDAY = 7

    @classmethod
    def from_date(cls, date):
        return cls(date.isoweekday())

これで、今日が何曜日かを見つけることができます。

from datetime import date

print(Weekday.from_date(date.today()))

以上がPythonのEnum関数の基本的な使い方となります。これを使うことで、コードの可読性と保守性を向上させることができます。

投稿者 admin

コメントを残す

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