PythonのEnumとEnumもどき

Pocket

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です