【完全独学Python】Enumはこれだけ覚えて!初心者向けに徹底解説!

基礎

こんにちは!ゆーや(@yuyamanm118712)です。

こちらのページでは完全独学でWebプログラマとなった私が

「enum」に関して必要な情報をまとめています。

この記事を読むと

  • Enumとは何か」がわかる
  • Enumをいつ使うのか」がわかる
  • Enumの使い方」がわかる

最後までじっくりと読んで、一緒に学習にしていきましょう。

なお、ご指摘・ご質問はTwitter(@yuyamanm118712)のDMまでよろしくお願いします。

Enumとは

Enumって何?

ゆーや
ゆーや

列挙型と呼ばれるもので、定数(または名前)の集合です!

例えば、信号は「赤、青、黄」の3種類であり、不変ですよね!

こういった選択肢が決まっている情報Enumでまとめておくと、便利です!

具体例を見ていきましょう!

Enumの定義

Enumは次のように定義します!

信号を例にSignalというEnumを作成してみましょう!

from enum import Enum

class Signal(Enum):
    RED = 1
    BLUE = 2
    YELLOW = 3
ゆーや
ゆーや

信号を例にしたけど、「曜日」やシステムに使う「ステータス」などをまとめておくのも良いね!

Enumを作るだけでは、動かないので使い方を見てみましょう!

ゆーや
ゆーや

その前にクラス(class)ってなんだっけ?という方は↓こちら↓を見て頂けたらと思います!

Enumの値へのアクセス

Enumの値へのアクセスの方法ですが、5つほどパターンを覚えておきましょう!

from enum import Enum

class Signal(Enum):
    RED = 1
    BLUE = 2
    YELLOW = 3

print(Signal)
# 実行結果:<enum 'Signal'>

print(Signal(2))
# 実行結果:Signal.BLUE

print(Signal.RED)
# 実行結果:Signal.RED

print(Signal.RED.name)
# 実行結果:RED

print(Signal.RED.value)
# 実行結果:1
ゆーや
ゆーや

これだけ覚えておけば、困ることはほとんどないよ!

Enumはfor文で使える

Enumは、いわゆるイテラブルであり、for文で使うことができます!

「イテラブルってなんだっけ」という方は、for文と合わせて↓↓↓こちら↓↓↓で詳しく解説してあります!

Enum × forの実装例

Enumをfor文で使用するには、いつも「range」や配列を記述する場所に「Enum」を記述すれば大丈夫です!

from enum import Enum

# Enumを定義
class Signal(Enum):
    RED = 1
    BLUE = 2
    YELLOW = 3

# Enumをfor文で回す
for color in Signal:
    print('name:', color.name)
    print('value:', color.value)

# 実行結果:
name: RED
value: 1
name: BLUE
value: 2
name: YELLOW
value: 3
ゆーや
ゆーや

for文で回される順番はEnumの定義の順番に影響されるので、
そこまで考慮して、Enumを定義しよう!

Enumの値を自動で設定するauto()

例えば、上の信号の例でいえば、RED、BLUE、YELLOWの名前は重要ですが、

その値「1」,「2」,「3」は「a」,「b」,「c」でも何でも良いですよね!

つまり、一意に値が定まっていれば、値に重要な意味はありません!

そんな時は、auto()を使うことで自動で連番を振ってくれます!

Enum × auto()の実装例

auto()で値を設定すると、勝手に1からの連番を振ってくれます!

from enum import Enum, auto

# Enumを定義
class Signal(Enum):
    RED = auto()
    BLUE = auto()
    YELLOW = auto()

# Enumをfor文で回す
for color in Signal:
    print('name:', color.name)
    print('value:', color.value)

# 実行結果:
name: RED
value: 1
name: BLUE
value: 2
name: YELLOW
value: 3
ゆーや
ゆーや

autoを使うにはimportする必要があるので、忘れずに!

まとめ

① Enumとは列挙型と呼ばれるもので、定数(または名前)の集合
② Enumの定義の仕方
③ Enumの値へのアクセス方法 1~5
④ Enum × forの実装
⑤ Enum × auto()の実装

まとめの内容を見て、もう頭に浮かべば完璧!

コメント

タイトルとURLをコピーしました