Python元组和枚举

时间:2019-02-20 18:30:08

标签: python enums tuples

所以我试图在python中使用枚举,并遇到以下错误: 当我使用枚举作为元组并给它两个值时,我无法仅访问一个值,例如tuple[0]

class Rank(Enum):
    ACE = 1
    TWO = 2
    THREE = 3
    FOUR = 4
    FIVE = 5
    SIX = 6
    SEVEN = 7
    EIGHT = 8
    NINE = 9
    TEN = 10
    JACK = 11
    QUEEN = 12
    KING = 13, "King"

print (Rank.KING.value)

印刷品是

  

(13,'King')

如何仅访问一个值,以便打印13或“ King”?

3 个答案:

答案 0 :(得分:3)

使用enum.Enum,类变量名本身成为name实例的枚举属性的Enum属性,因此您不必将KING设置为值和名称的元组:

class Rank(Enum):
    King = 13

print(Rank.King.name) # outputs 'King'
print(Rank.King.value) # outputs 13

如果您想使用大写字母命名类变量,但是将它们的name值混合大小写,而不是Enum的目的,那么您必须将{{ 1}},并自行覆盖Enum方法以自定义行为:

name

答案 1 :(得分:0)

您可以像在数组上一样使用索引:

>>> KING = 13, 'King'
>>> KING
(13, 'King')
>>> KING[0]
13
>>> KING[1]
'King'
>>> 

答案 2 :(得分:0)

欢迎来到stackoverflow。 以下是您访问13或“国王”的方法

Rank.KING.value[0]
Rank.KING.value[1]