首页 > 解决方案 > 我有我的作业代码。我不知道如何修复错误。我得到一个类型错误

问题描述

随机导入

类 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'

标签: python-3.x

解决方案


类 Deck 的构造函数不需要suit参数,您已经在上面定义了它。您可能想要做的是删除论点:

def __init__(self)

推荐阅读