初始化基本堆栈,但我不理解错误

时间:2014-01-31 03:09:18

标签: oop python-3.x stack

我正在尝试使用push和pop函数初始化基本堆栈。 测试时会出现问题。您将在代码中注意到我已按下2次,因此堆栈的打印应显示[5,5],而它显示None。我可以修补代码以使其最终起作用,但是我不会完全理解基本概念和我的方式的错误。所以我要求建议和指示。 请查看这些代码并告诉我我做错了什么。

这是带有所有函数的类的代码,它被命名为stack_class

class Stack:

    def __init__(self):
        self._values = []
        print ('Stack initialized...')
        return

    def push(self, var):
        ok = self._values.append(var)
        return ok

    def pop(self):
        self.stack.pop()

    def __str__(self):
        output = "{0}".format(self.ok)
        return output

这是测试代码:

from stack_class import Stack

ob_1 = Stack()
ob_1.push(5)
print(ob_1.push(5))

1 个答案:

答案 0 :(得分:1)

如果append方法没有返回任何内容,会发生什么。

print [].append(1)
>>> None

它完成了它的工作,但没有返回任何内容,这就是你在变量None中获得ok的原因。我想你想要回复_values

def push(self, var):
    self._values.append(var)
    return self._values

<强>输出:

Stack initialized...
[5, 5]

此外,这是我第一次阅读空回归惯例。没有必要。