返回对象列表中所有对象的单个字符串表示形式

时间:2016-04-22 00:13:42

标签: python class oop

是否可以返回来自不同类别__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循环一样。

无论如何,是合理地还是不合理地这样做?

1 个答案:

答案 0 :(得分:0)

您已经说过如何执行此操作,请使用for循环。

return "".join([str(x) + "\n" for x in self.bars])