Мой объект класса не будет напечатан в 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_deck)
дает мне следующую ошибку, и я не знаю почему, потому что я следую аналогичным примерам, которые используют __str__
для печати класса объект:
---------------------------------------------------------------------------
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