有关如何在 Python 中使用 "raise" 关键字的查询



这段代码是从Michael t. Goodrich的《DATA STRUCTURE AND ALGORITHMS IN PYTHON》一书中借来的。

class ArrayStack:
def __init__(self):
self.data=[]
def __len__(self):
return len(self.data)
def is_empty(self):
return len(self.data)==0
def push(self,e):
self.data.append(e)
def top(self):
if self.is_empty():

raise Empty('Stack is empty')

else:
return self.data[-1]
def pop(self):
if self.is_empty():
raise Empty('Stack is empty')
else:
return self.data.pop()

在这里,作者使用raise Empty("stack is empty')引发错误消息,但"Empty"关键字不适合与 raise 一起使用,而是在我运行程序时抛出NameError。我不明白为什么作者在这里使用它而不是使用Exception关键字进行 raise。

它已被用于本书的每个数据结构中,所以我不认为这是一个打字错误。(如果我错过了一些基本的东西,我深表歉意)

本书在本书第6章的"片段6.1"中定义了Empty类。 此片段的描述是:

代码片段 6.1:空异常类的定义。

片段本身是:

class Empty(Exception):
"""Error attempting to access an element from an empty container."""
pass

本书后面使用此类的部分引用了此代码片段。

最新更新