我在python< __ main __中收到此错误。节点对象位于0x03A5F990>链表

时间:2015-07-23 18:25:40

标签: python data-structures object

使用python

的链表实现
class Node:
        def __init__(self,data,next):
                self.data = data
                self.next = next

class List:
        head=None
        tail=None
        def printlist(self):
                print("list")
                a=self.head
                while a is not None:
                        print(a)
                        a=a.next
        def append(self, data):
                node = Node(data, None)
                if self.head is None:
                    self.head = self.tail = node
                else:
                    self.tail.next = node
                self.tail = node
p=List()
p.append(15)
p.append(25)
p.printlist()

输出:

    list
    <__main__.Node object at 0x03A9F970>
    <__main__.Node object at 0x03A9F990>

检查答案你需要编辑这个内置方法def repr__并重写它。 您也可以通过添加__str 方法

来完成此操作

2 个答案:

答案 0 :(得分:3)

这不是错误。您正在查看您要求的输出:两个Node对象。

问题在于你没有defined __repr__ or __str__ on your Node class,因此没有直观的方法来打印出节点对象的值。它能做的只是平底船,并给你默认,这是无益的。

答案 1 :(得分:-1)

更改第13行
print(a)

print(a.data)