簡體   English   中英

我想返回KeyError不是None

[英]I want to return KeyError not None

我想返回KeyError但是它返回None 我不理解為什么。

if index == self.length or self.slots[index]==None:
    raise KeyError

您不會引發 KeyError因為您沒有輸入if -branch。 而且您不會輸入if -branch,因為您的條件都不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

或使用您選擇的調試器。

但是一些評論:

  • 通常,您要檢查索引是否>= ==長度(包括== !)。
  • 您應該使用isNone進行is NoneNotImplemented是有保證的單例。
  • KeyError使用異常消息,例如, raise KeyError('index out of bounds or item is None! Try again.')
  • 未命中顯式return的函數將返回None 這可能就是為什么您的代碼返回None原因!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM