[英]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.someList
和test.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.