Contents
Python 3.4から追加されたEnum
EnumはPython 3.4から標準ライブラリに追加されました。
それ以前のバージョンで使うにはpipでパッケージをインストールする必要がある。
インストール
$ pip install enum34
※数字なしでpip install enum
とやると、違うパッケージが入るので注意。
使い方
>>> from enum import Enum
>>> class Color(Enum):
... red = 1
... green = 2
... blue = 3
...
>>> Color.red
<Color.red: 1>
>>> Color['red']
<Color.red: 1>
>>> Color.red.name
'red'
Enumの定義は1行で書くことも出来る。
Color = Enum('Color', 'red green blue')
Enumもどき
Python 3.4より前のバージョンを使っていて、且つパッケージをインストールしたくない場合もある。
単純にタプルをって名前と値を対応させておくことができる。
>>> (red, green, blue) = range(3)
>>> red
0
>>> green
1
標準のEnumと同じように値を1から始めたければrangeに始めの値を指定すれば良い。
>>> (red, green, blue) = range(1,4)
>>>
>>> red
1
>>> green
2
クラスにタプルだけを持たせるとEnumっぽく使うことが出来る。
>>> class Color:
... red, green, blue = range(1, 4)
...
>>> Color.red
1