我没有收到错误,但我的类无法正常运行。我正在尝试让Card类打印“红心中的两颗”,但是当我运行它的时候什么也得不到。另外,在测试我的卡片类时,我得到了<__main__.Deck object at 0x0000029A1F045F70>,我想不起来该怎么纠正了。
import random
suits = ['spades', 'hearts', 'clubs', 'diamonds']
ranks = ['two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'jack', 'queen', 'king', 'ace']
values = {'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6, 'seven': 7, 'eight': 8, 'nine': 9, 'ten': 10, 'jack': 10, 'queen': 10, 'king': 10, 'ace': 11}
playing = True
class Card:
def __init__(self, value, suit):
self.value = value
self.suit = suit
def show(self):
print("{} of {}".format(self.value, self.suit))
card_picked = Card('two', 'hearts')
class Deck:
def __init__(self):
self.cards = []
self.build()
def build(self):
for i in values:
for s in suits:
self.cards.append(Card(i, s))
def show(self):
for c in self.cards:
c.show()
def shuffle(self):
random.shuffle(self.cards)
def deal(self):
single_card = self.cards.pop()
return single_card
deck = Deck()
print(deck)提前感谢您提供的任何帮助!
发布于 2021-01-17 04:12:20
print()访问类的__str__方法(如果该方法存在)。
您可以为您的Card类定义它:
class Card:
[...]
def __str__(self):
return "{} of {}".format(self.value, self.suit)对于整个扑克牌,您可以获得该扑克牌中每张卡的__str__方法:
class Deck:
[...]
def __str__(self):
return '\n'.join([c.__str__() for c in self.cards])发布于 2021-01-17 04:38:56
您的代码运行良好。
deck = Deck()
deck.shuffle()
card = deck.deal()
card.show()我得到了输出:
six of heartshttps://stackoverflow.com/questions/65753968
复制相似问题