How to print 2d array of objects in python?
本问题已经有最佳答案,请猛点这里访问。
我有一个二维对象数组,其中我为每个索引分配了一个对象:
1 2 3 | for row in range(0, 9): for column in range(0, 9): self.Matrix[row][column] = Square(row, column) |
其中square()是接受特定索引的对象。每个方形对象都有一个方法构造函数(
1 | print self.Matrix() |
但我最后得到了一个很长的,就像
1 | [[<__main__.Square object at 0x101936d90>, <__main__.Square object at 0x101936dd0>, <__main__.Square object at 0x101936e10>, ..... |
如何打印实际对象?
这是因为您正在打印包含
下面是一个带有存根类的演示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | >>> class A: ... def __str__(self): ... return 'a' ... def __repr__(self): ... return 'b' ... >>> print(A()) a >>> A() b >>> [A(), A()] [b, b] >>> print([A(), A()]) [b, b] >>> print(*[A(), A()]) a a |
解决方案是为
你应该用"重复"__
_uuu repr_uuu和_uuu str之间的差异__
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | class A(): def __str__(self): return"this is __str__" class B(): def __repr__(self): return"this is __repr__" a = [A() for one in range(10)] b = [B() for one in range(10)] print a [<__main__.A instance at 0x103e314d0>, <__main__.A instance at 0x103e31488>] print b [this is __repr__, this is __repr__] |