Так что для практики структуры данных на разных языках я решил создать Связанный список в python.Ошибка при создании LinkedList
Теперь вот мой код до сих пор, она все еще далека от завершения, но я столкнулся с этой ошибкой, и я не могу показаться, чтобы указать на себя, где она исходит от:
class LinkedNode:
def __init__(self, value):
self.value = value
self.nextNode = None
class LinkedList:
def __init__(self):
self.headNode = None
def isEmpty(self):
return self.headNode == None
def addToHead(self, value):
head = LinkedNode(value)
def removeFromHead(self):
head = self.headNode
self.headNode = self.headNode.nextNode
return head
def addToTail(self, value):
if self.headNode == None:
self.addToHead(value)
else:
tmp = self.headNode
while tmp.nextNode != None:
tmp = tmp.nextNode
tmp.nextNode = LinkedNode(value)
def empty(self):
self.headNode = None
def contains(self, value):
tmp = self.headNode
while tmp.nextNode != None:
if tmp.value == value:
return true
tmp = tmp.nextNode
return False
def toString(self):
tmp = self.headNode
buffer = '['
while tmp.nextNode != None:
buffer = buffer + str(tmp.value) + ', '
tmp = tmp.nextNode
buffer = buffer + ']'
list = LinkedList()
list.addToHead(1)
list.addToHead(2)
list.addToTail(3)
list.toString()
Здесь ошибка:
Traceback (most recent call last):
File "path/linkedList.py", line 52, in list.toString()
File "path/linkedList.py", line 44, in toString
while tmp.nextNode != None:
AttributeError: 'NoneType' object has no attribute 'nextNode' [Finished in 0.138s]
Ahh, я понимаю, что вы подразумеваете под «путинским» способом делать вещи, и таким образом я бы просто сделал print (repr (list)) 'или' str', если я тоже решил использовать это. Что было бы лучше сделать? Будут ли люди удобны представлению toString, а также использовать питоновское представление рядом? – madcrazydrumma
Всегда рекомендуется не дублировать код (имея как '__str __()', так и 'toString'). Кроме того, вам даже не нужно делать 'print (repr (list))'. Простой 'print (list)' будет автоматически вызывать метод '__str __()' :) – th3an0maly
Ahh okay, что хорошо знать! Тогда я буду придерживаться метода '__str __()'! – madcrazydrumma