2013年7月4日木曜日

Python 3.4のEnumを使ってみた

Python 3.4で導入される予定のEnumを使ってみました。PEP 435 -- Adding an Enum type to the Python standard libraryは見ていたのですが、実装もドキュメントもすでにあります。enum.pyだけ持ってくればPython 3.3でもとりあえず動くようです。

EnumといえばEnumのSwitch/Caseかなと思い、全パターン網羅しているかチェックするの程度なら簡単そうなので適当に実装してみました。

Enumにメンバーを追加しなければ継承できるので、switchを持ったクラスを作るのもいいと思ったけど、すでに存在しているEnumに対して使えないのは微妙なのでやめた。

キーワード引数でEnumの名前とその要素だった時に呼ぶ関数を渡す形でswitch関数を実装してみました。キーワード引数の名前とswitchする値が属するEnumの名前をチェックして、全てのパターンが網羅されていないと例外を投げます。デフォルトは _ にしました。

0 件のコメント:

コメントを投稿