(ハック)はPythonに列挙型を実装するための単純な方法を、私を見つけた:Pythonの列挙型クラス
class MyEnum:
VAL1, VAL2, VAL3 = range(3)
私はそのようなとしてこれを呼び出すことができます。
bob = MyEnum.VAL1
セクシー!
さて、文字列が与えられている場合は数値を、数値が与えられている場合は文字列を取得できます。のは、私が正確に一致する文字列をしたいとしましょう列挙型キーの
私は考えることができる最高のは、このようなものです:
class MyEnum:
VAL1, VAL2, VAL3 = range(3)
@classmethod
def tostring(cls, val):
if (val == cls.VAL1):
return "VAL1"
elif (val == cls.VAL2):
return "VAL2"
elif (val == cls.VAL3):
return "VAL3"
else:
return None
@classmethod
def fromstring(cls, str):
if (str.upper() == "VAL1"):
return cls.VAL1
elif (str.upper() == "VAL2"):
return cls.VAL2
elif (str.upper() == "VAL2"):
return cls.VAL2
else:
return None
またはそのような何か(私は無効な例をキャッチしていますどのように無視します)
私が上でやっていることを行うためのより良い、より多くのpython中心の方法がありますか?または、すでに上のように簡潔になっています。
これを行うにはより良い方法があるようです。
場合/他のこの量は、常に、それは間違っているソリューションです示し;)の –
可能重複[Pythonで「列挙型」を実施するための最良の方法は何ですか? ](http://stackoverflow.com/questions/36932/whats-the-best-way-to-implement-an-enum-in-python) –
@ニック:あなたの受け入れられた答えを変更することができます。 –