在卡片组/卡片组中使用枚举

时间:2018-01-13 15:34:29

标签: python python-3.x class oop enums

我认识到这是一个常见的问题领域,有很多答案: 例如Herehere

具体来说,我正在努力更好地理解如何在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应该阻止的,那么目前没有错误,对吗?

希望获得更多的洞察力/教育。谢谢!

0 个答案:

没有答案