Python - экземпляр в 0x028A1828
Я реализую связанный список, и когда я пытаюсь напечатать значение, на которое указывает узел, я получаю адрес своей памяти в консоли. Есть ли способ преобразовать это в значение, связанное с этим?
print "[Data: " + `data` + " | Next: " + `temp.next` + " ]"
Выход:
[Данные: 1 | Далее: нет]
[Данные: 2 | Далее: экземпляр cell.Cell в 0x028A1828 ]
2 ответа
Вы можете переопределить __repr__
соответственно:
class Node:
…
def __repr__(self):
return "[Data: {!r} | Next: {!r}]".format(self.data, self.next)
Тогда вы также сможете просто позвонить print(node)
чтобы получить полезное представление об узле. (Предполагается, что ваш узел является классом.)
Ваш класс клетки нуждается в __str__
-метод, чтобы превратить себя в строку.
class Cell(object):
...
def __str__(self):
return "your cell as a string"