如何修复显示的链接列表代码:AttributeError:“ linked_list”对象没有属性“ head”

时间:2018-12-08 15:49:00

标签: python linked-list

我正在尝试遵循有关创建空链接列表的教程,但是遇到了我不理解的错误。我是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()

1 个答案:

答案 0 :(得分:2)

您的构造函数名称不正确:应为__init__(两个下划线),而不是_init_

class linked_list:
    def __init__(self):
        self.head = node()

Python认为_init_只是另一种方法,而不是构造函数。因此,self.head的分配从未发生。