перечисление python get по строковому значению не работает - PullRequest
0 голосов
/ 10 октября 2018

У меня есть перечисление ниже

class Ranking(Enum):
    FIRST = 'First',
    SECOND = 'Second',
    THIRD = 'Third'

Когда я пытаюсь Ranking('First'), я получаю следующее исключение: ValueError: 'First' is not a valid Ranking

Есть ли эффективный способ получить Ranking.FIRST изстрока 'First'?

1 Ответ

0 голосов
/ 11 октября 2018

Вы думаете о стиле C, где разрывы строк не имеют смысла, а члены перечисления нуждаются в запятых между ними.В Python разрывы строк имеют значение, и эти запятые фактически создают кортежи:

# How Python sees your code
class Ranking(Enum):
    FIRST = ('First',)
    SECOND = ('Second',)
    THIRD = 'Third'

Удалите запятые.

...