【发布时间】:2017-09-20 03:28:57
【问题描述】:
作为一个相对较新的 Python 程序员,我最近尝试通过使用类和子类来模拟入队和出队。目前,我的代码读取和执行尝试读取:
class queue:
class node:
def __init__(self, value, nextNode):
self.value = value
self.nextNode = nextNode
def __init__(self):
self.top = None
self.last = None
self.size = 0
def __len__(self):
return self.size
def enqueue(self, value):
#This creates an extra node with "value" and inserts at the top
newNode=queue.node(value,None)
if self.size ==0:
self.top=newNode
self.last=self.top
self.size+=1
else:
self.last.nextNode=newNode
self.last=newNode
self.size+=1
def dequeue(self):
#This returns self.top.value and at the same time deletes the top
node.
if self.size ==0:
return "error: dequeue from an empty queue"
elif self.size == 1:
val=self.top.value
nxt=self.top.nextNode
self.top=None
self.last=None
else:
val=self.top.value
nxt=self.top.nextNode
self.top=nxt
return val
q = queue()
q.enqueue(1)
q.enqueue(2)
q.enqueue(3)
q.enqueue(4)
x=q.dequeue()
output = []
while len(q)>0:
x = q.dequeue()
output.append(x)
print(output)
#This should show [2, 3, 4]
据我了解,我的主要问题是返回当前收到的值:
AttributeError: 'NoneType' 对象没有属性 'value'
当我尝试跑步时。如果有人能澄清问题所在,将不胜感激。
【问题讨论】:
标签: python python-3.x class queue subclass