如何从实例列表中获取类实例对象

2024-10-02 16:30:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用以下代码生成一个列表,其中包含一组卡片对象实例:

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]

Tags: selfobjectvaluemaindefgroupderandom
1条回答
网友
1楼 · 发布于 2024-10-02 16:30:39

您需要在Cards上实现__repr____str__

def __str__(self):
    return f"{self.Value} of {self.Group}"

def __repr__(self):
    return f'{type(self).__name__}({self.Value!r}, {self.Group!r})'

更多信息见Difference between __str__ and __repr__?on the Python docs

编辑:根据评论进行更新

相关问题 更多 >