如何打印存储在列表中的对象的值

时间:2021-03-29 16:22:32

标签: python

我正在尝试遍历存储在名为 User 的 Python 列表中的 myusers 对象,然后打印每个对象。这就是我所做的:

class User:
    def __init__(self,name,age):
        self.name = name
        self.age = age

myusers= [User("Fred", "30"), User("Doe", "20")] 

for i in range(2):
    print(str(myusers[i]))

我从上面得到的是内存位置如下:

<__main__.User object at 0x000001FD807B4250>
<__main__.User object at 0x000001FD807F13A0>

但是,我希望得到:

User("Fred", "30")
User("Doe", "20")

我见过这个问题:https://stackoverflow.com/questions/59115308/print-out-objects-stored-in-a-list 但它没有回答我的问题,因为我在打印函数中使用了 str。当我没有得到这个值时,谁能告诉我?

1 个答案:

答案 0 :(得分:1)

如评论中所述,您应该定义一个 __str__ 方法,该方法定义如何将您的对象表示为字符串。

class User:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def __str__(self):
        return f'User("{self.name}", "{self.age}")'

myusers= [User("Fred", "30"), User("Doe", "20")] 

for i in range(2):
    print(myusers[i])
相关问题