我有这个代码来生成一个包含一副 Cards 对象实例的列表:
import random
class Cards:
def __init__(self, Value = random.choice([1,2,3,4,5,6,7,8,9,10,11,12,13]), Group = random.choice(["Diamonds", "Hearts", "Clubs", "Spades"])):
self.Value = Value
self.Group = Group
def printCards(self):
if self.Value == 11:
print("J de " + self.Group)
elif self.Value == 12:
print("Queen de " + self.Group)
elif self.Value == 13:
print("King de " + self.Group)
else:
print(str(self.Value) + " de " + self.Group)
def creat_deck():
list_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
list_groups = ["Diamonds", "Hearts", "Clubs", "Spades"]
list_deck = []
for number in list_numbers:
for group in list_groups:
list_deck.append(Cards(number, group))
return list_deck
当我打印时,我得到了这个:
print(creat_deck())
[<__main__.Cards object at 0x02D3D100>, <__main__.Cards object at 0x02D3D070>, <__main__.Cards object at 0x02D3DC70>, ...and so on until the Card object 52]
我该怎么做才能获得实际的卡片,例如:
[Queen of Diamonds, 7 of Clubs, , ...and so on]
你将要实现__repr__
和__str__
上Cards
:
def __str__(self):
return f"{self.Value} of {self.Group}"
def __repr__(self):
return f'{type(self).__name__}({self.Value!r}, {self.Group!r})'
更多信息位于 __str__ 和 __repr__ 之间的区别?并在 Python 文档上
编辑:根据评论更新。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句