Usar el orden de definición de Enum como orden natural
Estoy tratando de crear unEnum
subclase cuyos valores usan su orden de definición como su orden de clasificación natural, como en el ejemplo a continuación:
@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)}
¿Hay una manera más directa de obtener la posición de un valor enum en su orden de definición o de otra manera una mejor manera de hacerlo?