概要
Pythonにて指定した値でEnumを取得する場合、nameとvalueの双方から可能です。基本的にはConvert string to Enum in Pythonのstackoverflowの回答に書いてある通りですが、実際に動かしてみたのでメモ書きを残しておきます。
前提
- 使用したPythonのバージョンは
3.13.0
です。
実装サンプル
まずは以下の通り、Enumを用意します。
from enum import Enum
class SampleEnum(Enum):
Key1 = "value1"
Key2 = "value2"
Key3 = "value3"
nameから取得する際の実装です。以下の通り[]
で取得したいnameを指定します。なお、存在しないnameを指定した場合はKeyError
が発生します。
# nameからenumを取得
enum = SampleEnum["Key1"]
# これはKeyError
# enum = SampleEnum["Key4"]
次にvalueから取得する際の実装です。以下の通り()
で取得したいnameを指定します。なお、存在しないvalueを指定した場合はValueError
が発生します。
# valueからenumを取得
enum = SampleEnum("value2")
# これはValueError
# enum = SampleEnum("value4")