我在使用某些属性具有相同值的枚举时遇到问题。我认为Enums对python来说是如此的新鲜,以至于我找不到任何其他的参考资料。在任何情况下,假设我有以下几种:带有重复值的Python枚举
class CardNumber(Enum):
ACE = 11
TWO = 2
THREE = 3
FOUR = 4
FIVE = 5
SIX = 6
SEVEN = 7
EIGHT = 8
NINE = 9
TEN = 10
JACK = 10
QUEEN = 10
KING = 10
显然这些是卡号和它们在黑色插孔中的相应值。十通王有相同的价值。但如果我做了类似print(CardNumber.QUEEN)
的东西,我可以回到<CardNumber.TEN: 10>
。更重要的是,如果我对这些进行迭代,它只是对独特的值进行迭代。
>>> for elem in CardNumber:
... print(elem)
CardNumber.ACE
CardNumber.TWO
CardNumber.THREE
CardNumber.FOUR
CardNumber.FIVE
CardNumber.SIX
CardNumber.SEVEN
CardNumber.EIGHT
CardNumber.NINE
CardNumber.TEN
我该如何解决这个问题?我想CardNumber.QUEEN和CardNumber.TEN是唯一的,并且都出现在任何迭代中。我能想到的唯一的事情就是给每个属性一个第二个值,这个值可以作为一个独特的ID,但看起来没有问题。
'Enum'显然不是这个的正确选择。为什么不一个OrderedDict'而不是? – jonrsharpe