Venant d'un milieu Java, je comprends que __str__
est quelque chose comme une version Python de toString (bien que je réalise que Python est le langage le plus ancien).
J'ai donc défini une petite classe ainsi qu'une __str__
comme suit :
class Node:
def __init__(self, id):
self.id = id
self.neighbours = []
self.distance = 0
def __str__(self):
return str(self.id)
Je crée ensuite quelques instances de celui-ci :
uno = Node(1)
due = Node(2)
tri = Node(3)
qua = Node(4)
Le comportement attendu lorsqu'on essaie d'imprimer un de ces objets est que la valeur qui lui est associée est imprimée. Ceci se produit également.
print uno
donne
1
Mais quand je fais ce qui suit :
uno.neighbours.append([[due, 4], [tri, 5]])
et ensuite
print uno.neighbours
Je reçois
[[[<__main__.Node instance at 0x00000000023A6C48>, 4], [<__main__.Node instance at 0x00000000023A6D08>, 5]]]
Où je m'attendais
[[2, 4], [3, 5]]
Qu'est-ce que j'ai manqué ? Et quels sont les autres trucs dégoûtants que je fais ? :)