【发布时间】:2021-03-29 16:22:32
【问题描述】:
我正在尝试遍历存储在名为myusers 的python 列表中的User 对象,然后打印每个对象。这就是我所做的:
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 但它没有回答我的问题,因为我在 print 函数中使用了 str 。当我没有得到这个值时,谁能告诉我?
【问题讨论】:
-
你需要在你的类中写一个
__str__函数,这样你的类就知道如何把它自己变成一个字符串。 -
该问题中接受的答案正是您需要的!
-
另外,您不需要在打印前通过
str()显式转换为字符串。如果参数不是字符串,print()已经为您执行此操作。
标签: python