所以我正在尝试学习Python, 我正在尝试一个代表整个卡片组的课程。 因此,在创建实例时,它应生成包含卡片的列表。 该卡还带有对象“卡”。
问题是,当我通过将卡片添加到列表中来生成卡片时,所有项目都会被最后一个输入覆盖
我的代码应该一直生成2个黑桃,直到黑桃王。打印时-打印出13行《黑桃王》。
我想念什么?
这是我的卡类:
class Card:
def __init__(self, color, cvalue):
if color.lower() == "s":
self.color = "Spades"
elif color.lower() == "h":
self.color = "Hearts"
elif color.lower() == "d":
self.lower = "Diamond"
else:
self.lower = "Clubs"
if cvalue.isnumeric():
Card.value = int(cvalue)
if cvalue == '11':
Card.card_name = 'Ace'
else:
Card.card_name = cvalue
else:
Card.value = 10
if cvalue.lower() == 'j':
Card.card_name = "Jack"
elif cvalue.lower() == 'q':
Card.card_name = "Queen"
else:
Card.card_name = "King"
def __str__(self):
return f'{Card.card_name} of {self.color}'
这是DeckOfCards类的定义:
class DeckOfCards():
deck = []
def __init__(self):
for x in range(2,12):
DeckOfCards.deck.append(Card('s', str(x)))
DeckOfCards.deck.append(Card('s', 'j'))
DeckOfCards.deck.append(Card('s', 'q'))
DeckOfCards.deck.append(Card('s', 'k'))
这是显示卡片的测试代码
if __name__ == "__main__":
c = Card('s','11')
d = DeckOfCards()
for x in d.deck:
print(x)