我正在尝试遵循有关创建空链接列表的教程,但是遇到了我不理解的错误。我是python中的Classes的新手,所以在运行代码时不理解它说对象没有属性头的含义是什么
class node:
def _init_(self,data=None):
self.data=data
self.next=None
class linked_list:
def _init_(self):
self.head = node()
def append(self,data):
new_node = node(data)
cur = self.head
while cur.next!=None:
cur = cur.next
cur.next = new_node
def length(self):
cur = self.head
total = 0
while cur.next!=None:
total+=1
cur = cur.next
return total
def display(self):
elems = []
cur_node = self.head
while cur_node.next!=None:
cur_node=cur_node.next
elems.append(cur_node.data)
print (elems)
my_list = linked_list()
my_list.display()
答案 0 :(得分:2)
您的构造函数名称不正确:应为__init__
(两个下划线),而不是_init_
。
class linked_list:
def __init__(self):
self.head = node()
Python认为_init_
只是另一种方法,而不是构造函数。因此,self.head
的分配从未发生。