.net column
.NET開発者のためのブログメディア

Pythonでの列挙型(enum)の使い方とは?識別子の集合について紹介!

 

SE
enumの特徴と使い方について教えてください。

PM
列挙型とも呼ばれ、決められた複数の選択肢から値を指定する際に利用します。

Pythonでの列挙型(enum)の使い方とは?


今回は、Pythonでの列挙型(enum)の使い方について説明します。
enumとは、識別子の集合です。通常、意味のある集合体として定義します。

ここでは、Enumクラス、IntEnumクラス、Flagクラス、unique、auto関数
について紹介します。
Pythonでのenumの使い方に興味のある方はぜひご覧ください。

Enumクラス

Pythonにおけるenumの基底クラスであるEnumクラスの使い方を紹介します。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

enumの比較は以下のように記述します。

実行結果は以下のようになります。

enumの識別子や値を確認するには、以下のように記述します。

実行結果は以下のようになります。

enumはfor文で全要素を処理できます。

実行結果は以下のようになります。

配列のように要素にアクセスすることもできます。

実行結果は以下のようになります。

要素が重複すると、コンパイルエラーになります。

コンパイル結果は以下のようになります。

Pythonでは、このようにenumを使用します。

IntEnumクラス

EnumクラスおよびintのサブクラスでもあるIntEnumクラスを紹介します。PythonのIntEnumクラスはint型と比較できます。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

このように、PythonのIntEnumクラスはint型と比較できます。

Flagクラス

ビット演算子 (&, |, ^, ~) が使用可能なenumである、Flagクラスを紹介します。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

このように、PythonのFlagクラスはビット演算子が使用できます。

unique

識別子が重複しないことを保証するデコレーターである、uniqueを紹介します。

実際のソースコードを見てみましょう。

以下のようなコンパイルエラーが発生します。

@uniqueをコメントアウトするとコンパイルエラーにはなりません。

実行結果は以下のようになります。

このようにPythonでは、識別子を重複させたくない場合はuniqueを使用します。

auto関数

値をプログラマが指定する必要がない場合、auto関数が使用できます。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

このようにPythonでは、値をプログラマが指定する必要がない場合、auto関数が使用できます。

SE
選択肢にない値を指定してしまう不具合を抑制してくれるのですね。

PM
enum以外の値を指定すると不具合を指摘してくれます。

まとめ

いかがでしたでしょうか。Pythonでの列挙型(enum)の使い方について説明しました。

enumとは、識別子の集合です。通常、意味のある集合体として定義します。
ここでは、Enumクラス、IntEnumクラス、Flagクラス、unique、auto関数
について紹介しました。

ぜひご自身でソースコードを書いて、理解を深めてください。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags