python-3.x - 我有我的作业代码。我不知道如何修复错误。我得到一个类型错误
问题描述
随机导入
类 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]
甲板1 =甲板()打印(甲板1.cards)
TypeError Traceback (last last call last) in 72 73 ---> 74 deck1 = Deck() 75 print(deck1.cards) 76
TypeError:init()缺少1个必需的位置参数:'suit'
解决方案
类 Deck 的构造函数不需要suit
参数,您已经在上面定义了它。您可能想要做的是删除论点:
def __init__(self)
推荐阅读
- bash - 如何复制名称中带有^的文件?
- java - 执行覆盖方法的所有实例
- c - 为什么我的程序两次打印最后一个输入行?
- java - 无法在 Netbeans 中使用 gradle 传递 JVM 参数。创建名为“springSecurityFilterChain”的 bean 时出错
- angular - 角度断言失败:new_time >= loop->创建新项目的时间
- python-3.x - 根据列表将某些值保留在字典值中
- ios - 播放/暂停按钮不会在锁屏中更新,它会在 Swift4 ios 中显示暂停按钮
- c# - OPC dll - 如何批量检索标签值
- python - 如何用环境噪声确定感兴趣声音的频率范围
- html - 为什么 lm_more div 中的标签越多