是否可以返回来自不同类别__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循环一样。
无论如何,是合理地还是不合理地这样做?
答案 0 :(得分:0)
您已经说过如何执行此操作,请使用for循环。
return "".join([str(x) + "\n" for x in self.bars])