Исходя из фона Java, я понимаю, что __str__
- это что-то вроде версии toString на Python (хотя я понимаю, что 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]]
Что мне не хватает? И что же я делаю?:)