Исходя из опыта работы с 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]]
Что мне не хватает? И что в противном случае достойное передергивания вещи я делаю? :)