【发布时间】:2016-08-15 10:03:43
【问题描述】:
是否可以返回来自不同类的对象列表中所有对象的字符串表示形式(使用 __str__)拥有 __str__ 函数?
假设我有一个类,其中包含对 Bar 对象执行的所有方法。调用这个类Foo。那么:
class Foo:
def __init__(self):
self.bars = [] # contains Bar objects
def __str__(self):
return "This is the Foo object"
class Bar:
def __init__(self, arg1):
self.arg1 = arg1
def __str__(self):
return "This is Bar object: " + arg1
def main():
foo = Foo()
print(str(foo))
我想打印 self.bars 中所有对象的字符串表示 WHEN 我调用 main(),因为创建 Bar 对象的实例不会让我访问字符串表示self.bars 中的所有对象。
澄清一下,我问的问题与this 帖子中关于__repr__ 需要的问题不同。相反,我想单独返回每个对象的字符串表示,就像使用 for 循环一样。
有没有办法合理或不合理地这样做?
【问题讨论】:
-
你的意思是像
return ','.join(str(b) for b in self.bars)这样的东西吗? -
另外,如果我问的问题与我发布的链接相同,请随时纠正我。如果这是某种意义上的重复,那只是因为我对主题的误解。