我想返回KeyError
,而是返回None
。我不明白为什么。
if index == self.length or self.slots[index]==None:
raise KeyError
答案 0 :(得分:0)
您没有提高 KeyError
因为您没有进入if
- 分支。并且您没有输入if
- 分支,因为您的条件都不是true
。
如果测试用例(您没有显示!)确实应该提升KeyError
,则可能需要调整条件。
要调试此问题,您可以插入一些print
- 语句:
print(index, self.length, index==self.length)
print(self.slots[index], self.slots[index]==None)
if index == self.length or self.slots[index]==None:
raise KeyError
或使用您选择的调试器。
然而有些意见:
>=
长度(包括==
!)。None
与is
进行比较。 None
和NotImplemented
是有保证的单身人士。KeyError
中使用例外消息,例如raise KeyError('index out of bounds or item is None! Try again.')
return
的功能将返回None
。这可能是您的代码返回None
的原因!