从 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
I get
[[[<__main__.Node instance at 0x00000000023A6C48>, 4], [<__main__.Node instance at 0x00000000023A6D08>, 5]]]
在我预料的地方
[[2, 4], [3, 5]]
我错过了什么? 除此之外,我还做了什么令人尴尬的事情? :)