无法从类中附加一组值

时间:2018-05-10 15:50:45

标签: python python-3.x

我在做纸牌游戏。 该类称为Card: 它可以使用deal()方法提供随机值,以显示数字1-13中的随机卡 另一个文件将导入包含Class Card的文件名。它会将该类调用5次,并能够通过将其附加到列表中并将其显示在名为display_hand

的另一个def中来存储它

这是类文件:

import random


class Card:
    def __init__(self):
        self.__value = 0

    def deal(self):
        self.__value = random.randint(1, 13)

    def set_value(self, value):
        self.__value = value

    def get_value(self):
        return self.__value

    def find_face_value(self):
        faces = ['Joker','Ace','Two','Three','Four','Five','Six',
             'Seven','Eight','Nine','Ten','Jack','Queen','King']
        return faces[self.__value]

    def __str__(self):
        return self.find_face_value()

程序太大,所以这是调用函数5次的def:

def deal_hand():  
    # Create an empty list to append the cards.
    hand = []
    deal_hand = classcard3.Card()

    for i in range(1, 6):
        deal_hand = classcard3.Card()
        deal_hand.deal()
        # Create a new object in memory and assign it to the
        # hand variable 
        w = classcard3.Card(deal_hand)
        # add it to the list
        hand.append(w)

    return hand 

这是显示功能:

def display_hand(hand):
    print ("The 5-card hand is: ")
    for item in hand:
        print(hand)

除了循环内的打印外,没有显示任何内容。如何将其传递到显示屏上以显示卡片? 这是我在循环中使用print函数时唯一显示的内容。我想在外面使用它,我不知道我做错了什么。如果我不能解释得太好,我很抱歉。我是python的初学者,也是这个网站的新手。谢谢

deal Four
deal Three
deal Five
deal Six
deal Queen

我从中得到的唯一错误是:

line 274, in deal_hand
    w = classcard3.Card(deal_hand)
TypeError: __init__() takes 1 positional argument but 2 were given

这没有意义,因为我正如书中所说,并且不愿意显示价值

0 个答案:

没有答案