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"
Другие вопросы по тегам