我应该如何将其转换为实数?

问题描述 投票:-1回答:1

我试过str和repr。但是它们都不起作用,仍然在0x10cefccc0>这些东西返回<main.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__())

结果是:[<main.Node对象位于0x10db27c18>,<main.Node对象位于0x10db27d30>]

algorithm function class
1个回答
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" ])

不过,我发现你编写一个基于无序列表的堆栈是很奇怪的。这很令人困惑,我不建议首先这样做。通常,堆栈具有其项目的固定顺序。

© www.soinside.com 2019 - 2024. All rights reserved.