2013-01-10 155 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返回。