繁体   English   中英

如何打印出用作 class 属性或实例属性的列表

[英]How to print out a list used as a class attribute or instance attribute

我已经玩了一段时间了,看不出来。 我有一个简单的 class 并且想将列表用作共享的 class 属性或什至只是一个实例属性。 显然,在某些时候,很高兴看到此列表中的内容,但我所能返回的只是 object 信息( <__main__.Testclass instance at 0x7ff2a18c> )。 我知道我需要重写__repr____str__方法,但我绝对没有正确地做到这一点。

class TestClass():
   
   someList = []

   def __init__(self):
      self.someOtherList = []

   def addToList(self, data):
      self.someOtherList.append(data)
      TestClass.someList.append(data)

   def __repr__(self):
      #maybe a loop here? I've tried returning list comprehensions and everything. 
      pass

test = TestClass()
test.addToList(1)
test.addToList(2)
test.addToList(3)

print(test.someList)
print(test.someOtherList)

我只想查看[1,2,3]1 2 3 (希望任选其一)。

使用test.someListtest.someOtherList ,您已经可以看到这些列表中的内容......

如果您想在打印test object 时查看这些列表,您可以实现__str____repr__并将实例的表示委托给其中之一。 (要么someList要么someOtherList

    def __repr__(self):
        return str(self.someOtherList)

现在,无论何时打印test object,它都会显示self.someOtherList的表示。

class TestClass:
    someList = []

    def __init__(self):
        self.someOtherList = []

    def addToList(self, data):
        self.someOtherList.append(data)
        TestClass.someList.append(data)

    def __repr__(self):
        return str(self.someOtherList)


test = TestClass()
test.addToList(1)
test.addToList(2)
test.addToList(3)

print(test)

output

[1, 2, 3]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM