问题描述
随机导入
类 PlayingCard(): def init(self,card_value,suit):
if value in '2345678910JQKA':
self.rank = str(card_value)
else:
print('Invalid rank!')
raise Exception('Invalid rank!')
self.rank = str(value)
if suit in '♥♦♣♠':
self.suit = suit
else:
print('Invalid suit!')
raise Exception('Invalid suit!')
def get_rank(self):
return self.rank
def get_suit(self):
return self.suit
def __repr__(self):
return self.rank+" of " +self.suit
类甲板():
ranks=[2,3,4,5,6,7,8,9,10,'J','Q','K','A']
suits=['♥','♦','♣','♠']
deck_cards=[]
def __init__(self,suit):
for rank in Deck.ranks:
for suit in Deck.suits:
card=PlayingCard(rank,suit)
Deck.deck_cards.append(card)
self.cards=[]
for card in Deck.deck_cards:
if card.get_suit()==suit:
self.cards.append(card)
def shuffle_deck(self):
random.shuffle(Deck.deck_cards)
def deal_card(self,card_count):
deal_cards=[]
if card_count<=len(self.cards):
deal_cards=random.sample(self.cards,card_count)
for card in deal_cards:
self.cards.remove(card)
deal_card_str = ""
for card in deal_cards:
deal_card_str += card.__str__()+","
print(deal_card_str[:-2])
else:
print('Cannot deal '+str(card_count)+' cards. The deck only has '
+str(len(self.cards))+' cards left!')
def __str__(self):
full_deck =''
for card in Deck.deck_cards:
full_deck += card.__str__()+","
return full_deck[:-2]
deck1 = Deck() 打印(deck1.cards)
TypeError Traceback(最近一次调用最后一次) 在 72 73 ---> 74 甲板 1 = 甲板() 75 打印(deck1.cards) 76
TypeError: init() 缺少 1 个必需的位置参数:'suit'
解决方法
类 Deck 的构造函数不需要 suit
参数,您已经在上面定义了它。您可能想要做的是删除参数:
def __init__(self)