Я пытаюсь создать подкласс Enum
, значение которого использует порядок их определений в их естественном порядке сортировки, как в примере ниже:Используйте порядок определения Enum в качестве естественного порядка
@functools.total_ordering
class SelectionType(enum.Enum):
character = 'character'
word = 'word'
sentence = 'sentence'
paragraph = 'paragraph'
def __le__(self, other):
if not isinstance(other, SelectionType):
return NotImplemented
return self._positions[self] < self._positions[other]
SelectionType._positions = {x: i for i, x in enumerate(SelectionType)}
Есть более прямой способ получить позицию значения перечисления в порядке определения или иначе лучший способ сделать это?
Осторожнее с псевдонимами – wim