enumとは
enumは、列挙型と呼ばれる複数の定数を1クラスにまとめて保持できるもの。
定義方法
enumは、標準ライブラリのenumモジュール
のEnumクラス
を継承させることで使用できる。
定義方法のサンプルが以下となる。
from enum import Enum
class Color(Enum):
#<name> = <value>
RED = 0
GREEN = 1
BULE = 2
変数名がname
、値がvalue
となる。enumでは、同じ名前のメンバを複数持つことができないため、下記のように定義するとエラーになる。
class Color(Enum):
# <name> = <value>
RED = 0
RED = 1
# TypeError: Attempted to reuse key: 'RED'
一方、同じvalue
を持つメンバは複数持つことができる。もし、重複を避けたい場合は@unique
を使うことで重複時エラーが発生する。
値の使い方
列挙型における値の扱い方は以下のようになる。
また、enumはfor文を使って値を取得することができる。
# 値の取得
print(Color.RED) # Color.RED
print(Color.RED.name) # RED
print(Color.RED.value) # 0
print(Color(0)) # Color.RED
# for文の場合
for in Color:
print(i)
# Color.RED
# Color.GREEN
# Color.BULE