我创建了自己的 LIFO 容器类 Stack,它支持 push、len、pop 和检查 isEmpty 的方法。在我的示例调用中,所有方法似乎都在工作,除了当我调用此类的创建实例(在我的示例中)时,当我想查看该对象的实际内容时,我会收到创建对象的内存位置。
class Stack:
x = []
def __init__(self, x=None):
if x == None:
self.x = []
else:
self.x = x
def isEmpty(self):
return len(self.x) == 0
def push(self,p):
self.x.append(p)
def pop(self):
return self.x.pop()
def __len__(self):
return(len(self.x))
s = Stack()
s.push('plate 1')
s.push('plate 2')
s.push('plate 3')
print(s)
print(s.isEmpty())
print(len(s))
print(s.pop())
print(s.pop())
print(s.pop())
print(s.isEmpty())
我得到运行这条线的结果print(s)
是<__main__.Stack object at 0x00000000032CD748>t
我期望和正在寻找的['plate 1','plate 2','plate3']