【问题标题】:How to remove [] on __repr__ return如何在 __repr__ 返回时删除 []
【发布时间】:2015-01-23 21:01:25
【问题描述】:

当使用 repr 测试我创建的类时,我的打印值总是被括号括起来。

例如)

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

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

感谢您的帮助。

【问题讨论】:

    标签: python repr


    【解决方案1】:

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

    我没有任何此类问题。

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

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

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

    【讨论】:

      【解决方案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
      

      【讨论】:

        猜你喜欢
        • 2021-12-06
        • 2012-11-23
        • 2011-04-19
        • 2020-09-18
        • 2018-05-06
        • 2021-01-15
        • 1970-01-01
        • 2018-10-31
        • 1970-01-01
        相关资源
        最近更新 更多