首页 > 解决方案 > 将 \n 添加到 __repr__

问题描述

我正在尝试格式化__repr__一个对象,以便它通过换行符分隔数组的每个元素。

这是课程:

class Data:
    taskArray = []
    def __init__(self,units):
        self.units = units
    def __repr__(self):
        return str("Units: {0} \n{1}".format(self.units, self.taskArray))

目前它会像这样打印:

Units: 4
[Element1, Element2, Element3]

我希望它像这样打印:

Units: 4
[Element1,
Element2,
Element3]

我将如何做到这一点?

标签: python

解决方案


使用str.join

>>> class Data:
...     taskArray = ["foo", "bar"]
...     def __init__(self,units):
...         self.units = units
...     def __repr__(self):
...         return "Units: {0} \n[{1}]".format(self.units, ",\n".join(repr(t) for t in self.taskArray))
... 
>>> print(Data(4))
Units: 4 
[foo,
bar]

推荐阅读