Как мне устранить эту ошибку в этом коде Python
Я пытаюсь написать программу на Python как часть задания, и мне нужно было использовать LinkedList и узлы, чтобы решить этот вопрос. Однако когда я пытаюсь запустить программу я получаю сообщение об ошибке как таковое:
Traceback (most recent call last): File "C:\Users\baseline\Desktop\DSAG\ProjectTest2.py", line 75, in <module> ll.AddBookAtPosition(book5, 3) File "C:\Users\baseline\Desktop\DSAG\ProjectTest2.py", line 49, in AddBookAtPosition head=head.next AttributeError: 'function' object has no attribute 'next'
Любая Помощь Или Совет, Которые Направят Меня В Правильном Направлении, Будут Очень Признательны
Что я уже пробовал:
This Is My Code That I have written so far <pre>class Node : def __init__(self, newData): self.data = newData self.next = None def getData(self): return self.data def setData(self,newData): self.data = newData def getNext(self): return self.next def next(self): return self.next def setNext(self,newNode): self.next = newNode class LinkedList : def __init__(self): self.head = None def AddBookToFront(self,newNode): newNode.setNext(self.head) self.head = newNode def next(self): return self.next def insertAfter(self, prev_node, new_data): if prev_node is None: return new_node = Node(new_data) new_node.next = prev_node.next prev_node.next = new_node def AddBookAtPosition(head, newNode, position): start=head if position == 0: return Node(newNode, head) while position > 1: head=head.next position-=1 head.next= Node(newNode, head.next) return start def printAll(self): cursor = self.head while cursor is not None: print(cursor.getData()) cursor=cursor.getNext() book1=("abc", "Peter") book2=("def", "James") book3=("ghi", "Sam") book4=("jkl", "Tom") book5=("mno", "Jessie") a = Node(book1) b = Node(book2) c = Node(book3) d = Node(book4) ll=LinkedList() ll.AddBookToFront(b) ll.AddBookToFront(a) ll.insertAfter(ll.head.next, book4) ll.AddBookAtPosition(book5, 3) ll.printAll()
Jun Jie Oi
Я записал код, как показано ниже..
узел класса :
def __init__(self, newData):
self.data = newData
self.next = нет
деф метода GetData(самовыдвижение):
вернуться самостоятельно.сведения
def setData(self,newData):
self.data = newData
def getNext(self):
вернуться самостоятельно.далее
деф рядом(самовыдвижение):
вернуться самостоятельно.далее
def setNext(self,newNode):
self.next = newNode
класс LinkedList :
деф __инит__(самостоятельная):
сам.голова = нет
def AddBookToFront(self,newNode):
newNode.setNext(самовыдвижение.глава)
сам.head = newNode
def getNext(self):
вернуться самостоятельно.далее
def insertAfter(self, prev_node, new_data):
если prev_node равен None:
вернуть
new_node = узел(new_data)
new_node.следующий = prev_node.далее
prev_node.следующий = new_node
def AddBookAtPosition(head, newNode, position):
старт=голова
если позиция == 0:
возвращаемый узел(newNode, head)
в то время как позиция > 1:
руководитель=руководитель.то getnext
Позиция-=1
head.next= узел(newNode, head.next)
обратный старт
деф печатные издания(самовыдвижение):
курсор = self.head
пока курсора нет ни одного:
печати(курсор.метода GetData())
курсор=cursor.getNext()
книга 1=("Азбука", "Петр")
book2=("def", "James")
книга 3=("ги", "Сэм")
book4=("jkl", "Tom")
book5=("mno", "Jessie")
a = узел(книга 1)
b = узел(книга 2)
c = узел(книга 3)
d = узел(книга 4)
ll=LinkedList()
Лл.AddBookToFront(б)
Лл.AddBookToFront(а)
ll.insertAfter(ll.head.next, book4)
ll.AddBookAtPosition(book5, 3)
Лл.печатные издания()
Но я все еще вижу ошибку, как показано ниже..
Обратная трассировка (самый недавний призыв последнего):
Файл "C:\Users\TP_baseline\Desktop\DSAG\ProjectTest2.py", строка 75, in <module>
лл.AddBookAtPosition(book5, 3)
Файл "C:\Users\TP_baseline\Desktop\DSAG\ProjectTest2.py", строка 49, в AddBookAtPosition
руководитель=руководитель.то getnext
AttributeError: объект 'function' не имеет атрибута 'getNext'
Я не уверен, что это правильное исправление, которое вы предложили мне принять. Любые дополнительные указания будут весьма признательны.