Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 类对象不打印_Python_Class - Fatal编程技术网

Python 类对象不打印

Python 类对象不打印,python,class,Python,Class,我的类对象不会在Python中打印。这是我的密码: import random suits = ("Hearts", "Diamonds", "Spades", "Clubs") ranks = ("Two","Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King", "Ace") values = {'Two':2, 'Three':3, 'Four':4, 'Five':

我的类对象不会在Python中打印。这是我的密码:

import random

suits = ("Hearts", "Diamonds", "Spades", "Clubs")
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, suit, rank):
        self.suit = suit
        self.rank = rank

    def __str__(self):
        return self.rank + " of " + self.suit

class Deck:

    def __init__(self):
        self.deck = []  # start with an empty list
        for suit in suits:
            for rank in ranks:
                self.deck.append(Card(suit,rank))

    def __str__(self):
        return self.deck

    def shuffle(self):
        random.shuffle(self.deck)

    def deal(self):
        pass

test_deck = Deck()
#len(test_deck.deck)
print(test_deck)
这段代码的最后一行
print(test\u deck)
给出了以下错误,我不知道为什么,因为我下面是使用
\uu str\uu
打印类对象的类似示例:

    ---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
 in 
      1 test_deck = Deck()
      2 len(test_deck.deck)
----> 3 print(test_deck)

TypeError: __str__ returned non-string (type list)

我不知道为什么我不能打印列表?即使我使用了
return

\uuu str\uu
方法,也必须返回字符串格式

你可以像这样重写它

def\uuuu str\uuuuuu(自):
return“,”join([str(card)表示self.deck中的卡])
所以它会打印这样的东西

Two of Hearts, Five of Diamonds
"[<__main__.Card object at 0x7f8ad5a1e190>, <__main__.Card object at 0x7f8ad5a1e190>]"
或者,如果您想显式地显示它是一个列表结构,只需返回
str(self.deck)

所以它会打印这样的东西

Two of Hearts, Five of Diamonds
"[<__main__.Card object at 0x7f8ad5a1e190>, <__main__.Card object at 0x7f8ad5a1e190>]"
“[,]”
方法必须返回字符串格式

你可以像这样重写它

def\uuuu str\uuuuuu(自):
return“,”join([str(card)表示self.deck中的卡])
所以它会打印这样的东西

Two of Hearts, Five of Diamonds
"[<__main__.Card object at 0x7f8ad5a1e190>, <__main__.Card object at 0x7f8ad5a1e190>]"
或者,如果您想显式地显示它是一个列表结构,只需返回
str(self.deck)

所以它会打印这样的东西

Two of Hearts, Five of Diamonds
"[<__main__.Card object at 0x7f8ad5a1e190>, <__main__.Card object at 0x7f8ad5a1e190>]"
“[,]”
您是否两次声明了
而不是声明
卡组
?请尝试用
返回str(self.Deck)
@JatinBansal替换
返回self.Deck
方法需要返回字符串。在这里,它返回一个列表,因此,它无法工作。您是否声明了两次
Card
,而不是声明
Card
Deck
?尝试将
return self.Deck
替换为
return str(self.Deck)
@JatinBansal是正确的,
\uu str\uuu
方法需要返回一个字符串。在这里,它返回一个列表,因此无法工作。