如何删除__repr__返回的[]

时间:2014-11-25 18:14:23

标签: python repr

当使用 repr 来测试我创建的类时,我总是在打印值周围得到括号。

离)

def __repr__(self):
    return ("H")

以shell运行 [H,H,H,H]为4行。我想删除括号和逗号但不确定如何使用 repr 执行此操作。我是否需要创建 repr 返回的另一种方法?

谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

您的示例不是很清楚,但我认为以下代码可能会展示您想要的内容:

>>> class Example:

    def __repr__(self):
        return 'H'


>>> array = [Example() for _ in range(4)]
>>> array
[H, H, H, H]
>>> class ArrayWithoutBrackets(list):

    def __repr__(self):
        return super().__repr__()[1:-1]


>>> array = ArrayWithoutBrackets()
>>> for _ in range(4):
    array.append(Example())


>>> array
H, H, H, H

答案 1 :(得分:0)

你必须隐藏一些东西。我认为您有一个包含所有实例的列表,这就是您看到一对[]的原因。

我没有任何此类问题。

>>> class A:
    def __repr__(self):
        return "a"


>>> 
>>> A()
a

我认为这似乎是你的情况:

>>> [A(),A()]
[a, a]