Python 简单堆栈长度

Python 简单堆栈长度,python,python-3.x,Python,Python 3.x,我已经阅读了这篇文章,可以让len()函数处理除堆栈之外的所有内容。我尝试过多种不同的想法,感觉很简单。有人看到我遇到的问题了吗。我不知道。我将非常感谢你的帮助 class HardwareID(): #empty list created def __init__(self): self.items = [] #push for python def push(self, item): self.items.append(item

我已经阅读了这篇文章,可以让
len()
函数处理除堆栈之外的所有内容。我尝试过多种不同的想法,感觉很简单。有人看到我遇到的问题了吗。我不知道。我将非常感谢你的帮助

class HardwareID():
    #empty list created
    def __init__(self):
        self.items = []
    #push for python
    def push(self, item):
        self.items.append(item)

    def pop(self):
        return self.items.pop()

    def is_empty(self):
        return self.items == []
    #implimented for learning
    def peek(self):
        if not self.is_empty():
            return self.items[-1]

    def get_stack(self):
        return self.items

s = HardwareID()

print ("The stack the right is the top")
s.push("LCD")
s.push("LED")
s.push("Mobile")
s.push("Charger")
s.push("Speaker")
s.push("Mouse")
s.push("Keyboard")
s.push("Laptop")
print (s.get_stack())
print (len(s))
s.pop()
s.pop()
s.pop()
print (s.get_stack())

解决问题的一个简单方法是将下面的方法添加到类中

def\uuuu len\uuuu(自):
返回len(自我项目)
您可以为您的
硬件ID
类实现该方法:

def\uuuu len\uuuu(自):
返回len(self.get_stack())
实施此方法将实现所需的行为:

s=HardwareID()
印刷品(透镜)0
s、 推送(“值”)
s、 推送(“B值”)
印刷品(透镜)2
s、 流行音乐()
印刷品(透镜)1

如何为您的类实现
\uuuu len\uuu()
方法?您是否尝试过
def\uu len\uuuu(self):返回len(self.items)
?提问时,最好发布错误
TypeError:HardwareID类型的对象没有len()
。谢谢。我没有意识到我必须使用class方法。现在我已经把它写在我的笔记本上,作为每一次尝试的一种方式。在堆栈方法中学习和执行此操作似乎有所不同。