Если вы печатаете list
чего-то, что сама list
печатает, то его элементы с использованием repr(element)
:
class Card:
def __init__(self, number, suit, trump='not the trump'):
self.number = number
self.suit = suit
self.trump = trump
def make_trump(self):
self.trump = 'the trump'
def remove_trump(self):
self.trump = 'not the trump'
def __str__(self):
return f'{self.number} of {self.suit}'
# provide the __repr__ method to be the same as str so iterables
# when printing this will not print the memory adress but the more
# meaningfull representation
def __repr__(self):
return str(self) # same as str
должны выполнить трюк
Вы можете просто
suits = ['spades', 'hearts', 'clubs', 'diamonds']
deck = []
for Suit in suits:
for i in range(13):
deck.append(Card(i, Suit)) # fix this
print(deck)
Вывод:
[0 of spades, 1 of spades, 2 of spades, 3 of spades, 4 of spades, 5 of spades,
6 of spades, 7 of spades, 8 of spades, 9 of spades, 10 of spades, 11 of spades,
12 of spades, 0 of hearts, 1 of hearts, 2 of hearts, 3 of hearts, 4 of hearts,
5 of hearts, 6 of hearts, 7 of hearts, 8 of hearts, 9 of hearts, 10 of hearts,
11 of hearts, 12 of hearts, 0 of clubs, 1 of clubs, 2 of clubs, 3 of clubs, 4 of clubs,
5 of clubs, 6 of clubs, 7 of clubs, 8 of clubs, 9 of clubs, 10 of clubs, 11 of clubs,
12 of clubs, 0 of diamonds, 1 of diamonds, 2 of diamonds, 3 of diamonds, 4 of diamonds,
5 of diamonds, 6 of diamonds, 7 of diamonds, 8 of diamonds, 9 of diamonds, 10 of diamonds,
11 of diamonds, 12 of diamonds]