在 Python 中实现 peek() 方法时处理空堆栈的正确方法
Proper way to handle an empty Stack when implementing a peek() method in Python
当使用 Python 实现堆栈时,在空堆栈上处理操作的常规方法是什么?
我有以下 stack.peek 简单堆栈方法 class 使用 Python 列表实现:
def peek(self):
if not self.empty:
return self.items[-1]
如果堆栈为空,是 return 一个 None 类型值更好还是引发错误?我不喜欢 returning 一个字符串的想法,它表明“堆栈是空的”,这是我引用的所有数据结构书籍的演示方式。在生产代码中处理此问题的常规方法是什么?
引发异常比返回任何内容更合适。顺便说一句,您可以考虑子类化 list
以涵盖典型的 push
、pop
和 peek
:
class Stack(list):
push = list.append
peek = lambda self: self[-1]
当使用 Python 实现堆栈时,在空堆栈上处理操作的常规方法是什么?
我有以下 stack.peek 简单堆栈方法 class 使用 Python 列表实现:
def peek(self):
if not self.empty:
return self.items[-1]
如果堆栈为空,是 return 一个 None 类型值更好还是引发错误?我不喜欢 returning 一个字符串的想法,它表明“堆栈是空的”,这是我引用的所有数据结构书籍的演示方式。在生产代码中处理此问题的常规方法是什么?
引发异常比返回任何内容更合适。顺便说一句,您可以考虑子类化 list
以涵盖典型的 push
、pop
和 peek
:
class Stack(list):
push = list.append
peek = lambda self: self[-1]