我正在尝试使用按下和流行功能初始化基本堆栈。测试时出现了问题。您会在代码中注意到我推了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))
发生的事情是 append
方法不返回任何东西。
print [].append(1)
>>> None
它可以完成工作,但没有返回任何东西,这就是为什么您在变量ok
中获得None
的原因。我认为您想返回_values
:
def push(self, var):
self._values.append(var)
return self._values
输出:
Stack initialized...
[5, 5]
另外,这是我第一次阅读有关空的返回约定。这不是必需的。