对Python中列表的__str__方法感到困惑。
- 论坛
- 对Python中列表的__str__方法感到困惑。
10 浏览
对Python中列表的__str__方法感到困惑。
作为一个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]]
我错过了什么?我还做了哪些令人尴尬的事情? 🙂