我正在尝试学习更多关于类的知识,所以我使用多个类构建了一副卡片。我们的目标是能够用这副牌玩多个纸牌游戏。我有一个基本的类,叫做PlayingCard:
class PlayingCard:
def __init__(self, suit, value):
self.suit = suit
self.value = value以及用于编号卡片、插孔卡片、皇后卡片等的不同子类,其定义如下:
class NumberedCards(PlayingCard):
def __init__(self, suit, value):
self.value = value
super().__init__(suit, self.value)
class JackCard(PlayingCard):
def __init__(self, suit):
self.value = 11
super().__init__(suit, self.value)
...and so on然后我在一个新的类‘deck’中构建我的一副牌:
class Deck:
def __init__(self):
self.deck = []
def create_deck(self):
for suit in Suit:
for i in range(2, 11):
self.deck.append(NumberedCards(suit.value, i))
self.deck.append(JackCard(suit.value))
...最后,我有一个名为Hand的类:
class Hand:
def __init__(self):
self.hand = []在那里我有一些函数可以从牌组中抽出卡片并将它们放入self.hand中
我现在想创建另一个具有不同函数的类,在这个类中,我可以使用Hand()-instance来检查手中是否有任何对,或者是否有直线等。我的脑海中有类似的东西:
class BestHand:
def __init__(self):
...
def check_pairs(self, cards):
"""Here, for example, I want to extract the value of
each card on hand and put them in a new list for easier comparison"""在那里,我可以通过调用样式为
hand = Hand()
test = BestHand()
test.check_pairs(hand)问题是我不能从手牌中提取价值。我知道它们只在PlayingCard类中被定义为self.value,但是有没有办法将它们提取出来用在BestHand类中呢?
发布于 2020-02-19 06:43:47
你有一个名为hand的对象,它的类型是Hand,这意味着它有一个名为hand的属性,这是Card对象的列表。hand.hand是该对象中的Card对象的列表。[card.value for card in hand.hand]将获取该卡片列表中每张卡片的值
https://stackoverflow.com/questions/60290382
复制相似问题