python枚举按字符串值获取不起作用

时间:2018-10-10 20:59:58

标签: python python-3.x enums python-3.6

我有下面的枚举

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

当我尝试Ranking('First')时,出现以下异常:ValueError: 'First' is not a valid Ranking

是否有任何有效的方法从字符串Ranking.FIRST中获取'First'

1 个答案:

答案 0 :(得分:3)

您正在考虑使用C样式,其中的换行符毫无意义,枚举成员之间必须使用逗号。在Python中,换行很重要,而这些逗号实际上正在创建元组:

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

删除逗号。