我正在尝试使用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))
答案 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]
此外,这是我第一次阅读空回归惯例。没有必要。