2013-01-10 81 views
0

我在想Python-C-API函數返回值爲-1的可能原因是什麼PyDict_DelItem不可能的原因`PyDict_DelItem`

我確定鍵和值都出現在字典中,但不明白爲什麼有時我會得到-1返回值。我找不到可能的原因文件。

+0

似乎該對象不可哈希,但因此不可索引,但實際上,當我從字典中刪除該對象被正確刪除.... – linello

回答

3

source code

  • 第一參數不是一個字典(PyDict_Check測試失敗):引發SystemError
  • 密鑰不可拆分:可能引起NotImplemented或其他異常,取決於確切的__hash__PyObject_Hash鉤子實現。
  • 在字典中找不到關鍵字:引發KeyError

無論如何,您需要檢查exception being set何時-1由PyDict_DelItem返回。