我尝试了 str 和 repr 。但它们都不起作用,并且仍然返回<< strong> main 。这些东西都位于0x10cefccc0>的UnorderedList对象。
class Stack:
def __init__(self):
self.items = UnorderedList()
def isEmpty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def __repr__(self):
return str(self.items)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[len(self.items) - 1]
def size(self):
length = self.items.size()
count = 0
for i in range(0, length):
count += 1
return count
print(stack_list.__repr__())
结果是: [<< strong> main .Node对象位于0x10db27c18>,<< strong> main .Node对象位于0x10db27d30>]
答案 0 :(得分:0)
如果您有兴趣获取在“结果是”之后编写的输出,那么(您的问题有点不清楚,您可以使用此代码:
def __repr__(self):
return '[ %s ]' % ', '.join(repr(item) for item in self.items)
尽管__repr__()
函数应该返回对象的表示形式,该函数在解释时应重新创建对象。因此,请考虑以下内容:
class Stack:
def __init__(self, items):
self.items = UnorderedList(items)
def __repr__(self):
return 'Stack([ %s ])' % ', '.join(repr(item) for item in self.items)
这将产生repr
的输出,类似于Stack([ "foo", "bar" ])
。
但是,我发现您编写基于 unordered 列表的 stack 很有意思。这很令人困惑,我不建议首先这样做。通常,堆栈具有固定的顺序。