我的代码有些问题。它说str
没有属性top
..这个程序的意思是使用链表,每当我尝试在put
中放置一些值时,我会收到一些错误..
class LinkedQ(object):
def __init__(self):
self.top = None
def __str__(self):
s = ""
p = self.first
while p != None:
s = s + str(p.value)
p = p.next
return s
def put(self):
ny = Node(x)
ny.next = self.top
self.top = ny
def get(self):
x = self.top.value
self.top = self.top.next
return x
def isEmpty(self):
if self.top == None:
return True
else:
return False
class Node:
def __init__(self, x):
self.value = x
self.next = None
row = input("Write line of numbers (1 2 3 4): ")
row_pi = row.split()
for i in row_pi:
LinkedQ.put(i)
答案 0 :(得分:2)
您的put
方法不会使用x
参数,但会尝试在其正文中使用本地变量x
。据推测,您的意思是使用您在代码的最后一行传递给方法的值,这意味着您的方法应该具有签名:
def put(self, x):
然而,还有另一个问题。您正尝试在类:
上调用该方法LinkedQ.put(i)
当它是实例方法时。在调用其实例方法之前,需要实例化该类的对象:
some_linked_q = LinkedQ()
for i in row_pi:
some_linked_q.put(i)
您在其他地方还有其他一些问题,但这至少可以解决您在问题中提到的错误。 (查找您没有在任何地方定义的变量......)