\

PythonのEnumは、ユニークな値に束縛されたシンボル名の集合です。Enumは多くの言語で採用されており、Pythonでも3.4から利用可能で、3.6からは追加機能が加えられています。

Enumの基本的な使い方は以下の通りです。

from enum import Enum

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

Enumのメンバーは、その名前だけを含む属性nameと、値のための属性valueを持っています。

print(Color.RED.name)  # RED
print(Color.RED.value)  # 1

また、PythonのEnumは、他の多くの言語が名前/値のペアとしてEnumを扱うのに対し、PythonのEnumは振る舞いを追加することが可能です。

例えば、datetime.dateweekday()isoweekday()の2つのメソッドを持っています。これらの違いは、一つは0-6、もう一つは1-7を数えることです。これを自分たちで追跡する代わりに、Weekday enumに日付から日を抽出し、対応する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())

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

print(Weekday.from_date(date.today()))  # 例えば、Weekday.TUESDAY

このように、PythonのEnumは非常に強力で、コードの可読性と安全性を向上させることができます。さらに深く理解するためには、公式ドキュメントや関連する記事を参照してください。

投稿者 admin

コメントを残す

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