Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonクラスで列挙型(Enum)を使う方法をわかりやすく解説

Pythonの列挙型(Enum)とは

Pythonには標準ライブラリとして「enum」モジュールが用意されており、これを使うことで列挙型(Enum)を簡単に定義できます。列挙型とは、あらかじめ決められた名前付きの定数をひとまとめにして管理するための仕組みです。曜日やステータス、車種など、取りうる値が限られているデータを扱う際に非常に便利です。

enumモジュールを利用することで、マジックナンバー(意味のない裸の数値)をコードに直接書くことを避けられ、可読性と保守性の高いプログラムを作成できます。

クラス内でEnumを定義する基本例

以下は、Carクラスでenum.Enumを継承し、複数の車種を列挙型として定義する基本的なサンプルコードです。

# enumモジュールをインポート
import enum

# クラスでenumを使用する
class Car(enum.Enum):
    suzuki = 1
    hyundai = 2
    dezire = 3

print("すべての列挙型の値:")
for c in (Car):
    print(c)

実行結果

すべての列挙型の値:
Car.suzuki
Car.hyundai
Car.dezire

コードのポイント解説

1. enumモジュールのインポート

まず「import enum」で標準ライブラリのenumモジュールを読み込みます。外部パッケージのインストールは不要です。

2. enum.Enumを継承したクラス定義

「class Car(enum.Enum):」のように、enum.Enumクラスを継承することで、Carクラスが列挙型になります。クラス変数として定義したsuzuki、hyundai、dezireがそれぞれ列挙メンバーとなり、値1・2・3に対応付けられます。

3. 列挙メンバーへのアクセス方法

個別のメンバーには次のようにアクセスできます。

print(Car.suzuki)        # Car.suzuki
print(Car.suzuki.name)   # suzuki(名前を取得)
print(Car.suzuki.value)  # 1(値を取得)

また、値からメンバーを取得したい場合は「Car(1)」のように呼び出すことも可能です。

まとめ

Pythonではenumモジュールを使い、enum.Enumを継承したクラスを定義するだけで列挙型を実現できます。定数を名前付きで一元管理できるため、コードの意図が明確になり、バグの防止にもつながります。ステータス管理やカテゴリ分類など、限定された値を扱う場面でぜひ活用してみてください。

  1. WindowsでPythonを使う方法|インストールから実行・モジュール導入まで完全解説

    初心者にも学びやすいプログラミング言語の代表格として、Pythonは世界中の何百万人ものコーダーに選ばれています。学習のハードルが低く、Windows・macOS・Linuxなど主要なOSすべてでサポートされており、Webサイト開発からデスクトップゲーム制作まで、幅広いプロジェクトに活用できるのが魅力です。 macOSやLinuxではPythonが最初からインストールされていることが多い一方、Windowsではいくつか追加の手順を踏む必要があります。この記事では、WindowsでPythonをインストールし、実際に使い始めるまでの流れをわかりやすく解説します。 WindowsへのPyt

  2. PythonのTkinterでスレッドを使う方法|threadingモジュールによる非同期処理の基本

    Tkinterでは、スレッド(Threading)を活用することで、複数の関数を同時に実行できます。これにより、アプリケーション内の処理を非同期で動かすことが可能になります。 Pythonでスレッドを使用するには、まずthreadingモジュールをインポートし、そのThreadクラスを継承した新しいクラスを定義します。そして、クラス内でrunメソッドをオーバーライドし、実行したい処理をその中に記述します。 つまり、スレッドを使えば複数の作業を並行して進めることができます。Tkinterアプリケーションでスレッドを実現する際は、Thread()関数を利用します。 ここでは、「一定時間スリープした