Прежде всего, это не ошибка. Ваша функция printQueue
выполняет итерацию элементов и печатает каждый элемент. Тип каждого элемента Node
. Например, ваш вывод содержит представление узлов: Объект ниже представляет собой один узел, определенный в функции __main__
. Его тип - Node Object
, а адрес памяти - 0x000001EB465D8048
<__main__.Node object at 0x000001EB465D8048>
Чтобы напечатать удобную для пользователя версию каждого узла, класс узла должен переопределить метод __str__
.
Например, если бы вы изменили свой класс Node
, чтобы он имел следующую структуру, то вы могли бы просто использовать print(element, end = "\n")
в своем методе printQueue
.
class Node:
def __init__(self, data):
self.data = data
self.next = None
self.prev = None
def __str__(self):
return str(self.data)
Тогда результат будет
The elements in the queue are
9
12
15
18
Более того, хотя он не имеет прямого отношения к вашему вопросу, он достаточно касателен, чтобы вы могли найти его полезным. Объекты Python имеют метод __str__
и __repr__
. Проще говоря, __str__
используется для представления читаемой формы вашего объекта, а __repr__
- однозначного представления.
Для получения дополнительной информации об этих двух методах, это сообщение stackoverflow хорошо объясняет их.