Python 比较枚举?
Python comparison of enums?
在 python 我有:
class Animal(enum.Enum):
dog = 1
cat = 2
lion = 3
如何比较它们的数值?例如我想做这样的事情:
if cat > dog:
# Something
您可以使用.value
属性获取数值。
>>> import enum
>>>
>>> class Animal(enum.Enum):
... dog = 1
... cat = 2
... lion = 3
...
>>>
>>> Animal.dog.value
1
>>> Animal.cat.value
2
>>>
>>> Animal.cat.value > Animal.dog.value
True
或者你可以实现你自己的 Enum
class 就像 OrderedEnum
(正如@Yuri Ginsburg 在评论中提到的那样)与比较所需的所有魔术方法,从而你可以比较直接变体。
>>> Animal.cat < Animal.dog
True
在 python 我有:
class Animal(enum.Enum):
dog = 1
cat = 2
lion = 3
如何比较它们的数值?例如我想做这样的事情:
if cat > dog:
# Something
您可以使用.value
属性获取数值。
>>> import enum
>>>
>>> class Animal(enum.Enum):
... dog = 1
... cat = 2
... lion = 3
...
>>>
>>> Animal.dog.value
1
>>> Animal.cat.value
2
>>>
>>> Animal.cat.value > Animal.dog.value
True
或者你可以实现你自己的 Enum
class 就像 OrderedEnum
(正如@Yuri Ginsburg 在评论中提到的那样)与比较所需的所有魔术方法,从而你可以比较直接变体。
>>> Animal.cat < Animal.dog
True