我认识到这是一个常见的问题领域,有很多答案: 例如Here和here。
具体来说,我正在努力更好地理解如何在Python中使用Enums。一副牌中的套装似乎是合适的,但是将它们作为一个类实现似乎是额外的,而且我很好奇是否有更多的pythonic方式来做它?
class Suits(Enum):
Club = 1
Heart = 2
Diamond = 3
Spade = 4
class Card:
def __init__(self, value, suit):
self.value = value
self.suit = suit
class Deck:
def __init__(self):
self.cards = self.initDeck()
def initDeck():
cards = {}
for suit in Suits:
for i in range(14):
cards.add(Card(i, suit))
return cards
Enums的重点是防止你添加一个坏的值,对吧? (比如,将新卡片制作为Card(0, 'joker')
)所以这可能不是正确的应用程序吗?如果我通过Card(4, 'dimond')
并且这正是enums应该阻止的,那么目前没有错误,对吗?
希望获得更多的洞察力/教育。谢谢!