【发布时间】:2015-01-23 21:01:25
【问题描述】:
当使用 repr 测试我创建的类时,我的打印值总是被括号括起来。
例如)
def __repr__(self):
return ("H")
在 shell 中运行为 [H, H, H, H] 4 行。我想删除括号和逗号,但不确定如何使用 repr 执行此操作。我是否需要创建另一个 repr 返回的方法?
感谢您的帮助。
【问题讨论】:
当使用 repr 测试我创建的类时,我的打印值总是被括号括起来。
例如)
def __repr__(self):
return ("H")
在 shell 中运行为 [H, H, H, H] 4 行。我想删除括号和逗号,但不确定如何使用 repr 执行此操作。我是否需要创建另一个 repr 返回的方法?
感谢您的帮助。
【问题讨论】:
你必须隐藏一些东西。我认为您有一个包含所有实例的列表,这就是为什么您会看到一对[、]。
我没有任何此类问题。
>>> class A:
def __repr__(self):
return "a"
>>>
>>> A()
a
我认为这似乎是你的情况:
>>> [A(),A()]
[a, a]
【讨论】:
你的例子不是很清楚,但我认为下面的代码可能会证明你想要什么:
>>> 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
【讨论】: