PythonのEnumは、一連のシンボリックな名前(メンバー)を一意の値にバインドすることができます。しかし、Enumのメンバーが0から始まるようにする方法は一見すると明らかではありません。以下に、PythonのEnumで0からの自動番号付けを行う方法について説明します。

Enumの作成

PythonのEnumは、クラス構文を使用するか、関数呼び出し構文を使用することで作成できます。以下に、それぞれの方法を示します。

from enum import Enum

# クラス構文
class Color(Enum):
    RED = 0
    GREEN = 1
    BLUE = 2

# 関数呼び出し構文
Color = Enum('Color', ['RED', 'GREEN', 'BLUE'])

これらのEnumは、それぞれのメンバーが一意の整数値を持つことを確認できます。しかし、これらのEnumは1から始まります。

0から始まるEnum

PythonのEnumで0から始まるようにするには、Enumの作成時にstartパラメータを使用して異なる開始値を指定します。以下に、その方法を示します。

Color = Enum('Color', ['RED', 'GREEN', 'BLUE'], start=0)

このEnumは、メンバーが0から始まることを確認できます。

注意点

Enumのメンバーが一般的に1から始まる理由は、0がFalseであるため、EnumのメンバーがすべてTrueと評価されるようにするためです。0から始まると、後で混乱する可能性があります。

以上、PythonのEnumで0からの自動番号付けを行う方法について説明しました。この情報がPythonのEnumの理解に役立つことを願っています。

投稿者 admin

コメントを残す

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