【发布时间】:2012-09-09 00:21:40
【问题描述】:
来自 Java 背景,我知道__str__ 类似于 Python 版本的 toString(虽然我确实意识到 Python 是较旧的语言)。
所以,我定义了一个小类以及一个__str__ 方法,如下所示:
class Node:
def __init__(self, id):
self.id = id
self.neighbours = []
self.distance = 0
def __str__(self):
return str(self.id)
然后我创建它的几个实例:
uno = Node(1)
due = Node(2)
tri = Node(3)
qua = Node(4)
现在,尝试打印这些对象之一时的预期行为是打印它的关联值。这也会发生。
print uno
产量
1
但是当我执行以下操作时:
uno.neighbours.append([[due, 4], [tri, 5]])
然后
print uno.neighbours
我明白了
[[[<__main__.Node instance at 0x00000000023A6C48>, 4], [<__main__.Node instance at 0x00000000023A6D08>, 5]]]
我期望的地方
[[2, 4], [3, 5]]
我错过了什么?我在做什么其他令人畏惧的事情? :)
【问题讨论】:
-
有趣的是,它是如何在被问到 7 年后关闭的。
标签: python string list printing tostring