2013-11-23 78 views
0

我目前有一个类将列表中的列表转换为对象列表,其中每个对象都有一定数量的构造函数。让我们说他们有名字和一些随机数字。打印类中的所有对象

我想要做的是同时打印所有这些对象,其中每个对象都是一行。我怎么会这样做,我试着做一个STR函数,但它仍然返回“”

好吧,我有一个类有10个对象,这些对象具有属性self.planet,self.distance, self.diansquared,self.radius,self.diamater其中distance/distsquared/radius/diamater都是整数,我有一个函数,应该打印所有行星的距离,最远的距离最远。但是当我试图做一个函数返回“”%(self.planet,self.distance,self.distsquared,self.radius self.diameter)它仍然只打印我想要打印每个对象 在此先感谢!

+2

添加更多细节,也许?包括你的代码,给出期望的输出/电流输出的例子? – selllikesybok

+0

好吧,我有一个有10个对象的类,它们具有属性self.planet,self.distance,self.distsquared,self.radius,self.diamater,其中distance/distsquared/radius/diamater都是整数,我有一个功能,应该打印所有行星的距离,最远的距离最高。但是当我试图做一个函数 返回“”%(self.planet,self.distance,self.distsquared,self。半径self.diameter)它仍然只打印 我想要打印每个对象 – user2982959

+2

在您的答案(编辑它)不在评论中,是吗?易于阅读,为其他人回复等。 – selllikesybok

回答

2

对于对象的列表,你可以将它们打印整齐的使用:

print("\n".join(str(x) for x in object_list)) 

类应具备的功能,使每个对象为一个字符串,如下所示:

def __str__(self): 
    return "Attr1: {0.attr1}, Attr2: {0.attr2}, ...".format(self) 
+0

或者:'返回'Attr1:{0.attr1} Attr2:{0.attr2}'.format(self)'或类似的格式化最多 –

+0

哦,我像那样,谢谢 – jonrsharpe