类型错误:类型 'Stack' 的对象没有 len()



"所以我似乎无法弄清楚出了什么问题。对于代码,我需要存储所有元素,并将它们逐个从堆栈中删除,然后显示堆栈的大小。我需要使用弹出方法、推送方法和大小方法。到目前为止,我还没有运气。另外,我需要定义一个也需要 int 的堆栈。

class Stack:
def __init__(self):
self.stack=[]
def empty(self):
if self.stack==[]:
return True
else:
return False
def Push(self, dataval):
if dataval not in self.stack:
self.stack.append(dataval)
top=len(self)-1
def Pop(self):
if empty(self):
print('Empty')
else:
dataval=self.stack.pop()
if len(self.stack)==0:
top=None
return ('No books are on stack.')
else:
top=len(self.stack)
print("Popped item is"+str(dataval))
def Display(self):
if empty(self):
print('Stack is empty')
else:
top=len(self.stack)-1
print('BookIDs in stack are: ')
for i in range(top,-1,-1):
print(str(self[i]))
if __name__=="__main__":
stack=Stack()
top=None
stack.Push(1000)
Push(2000)
Push(3000)
Push(4000)
Pop(self.stack)
Display(self.stack)
Pop(self.stack)
Display(self.stack)
Pop(self.stack)
Display(self.stack)
Pop(self.stack)
Display(self.stack)

错误在于此函数

def Push(self, dataval):
if dataval not in self.stack:
self.stack.append(dataval)
top=len(self)-1       --------------- > len(self) is the error. 

它需要是len(self.stack(

相关内容