cython id()函数导致整数溢出

时间:2019-07-30 15:43:58

标签: python-3.x cython

我有一个较大的项目,它使用一些cython生成的库。在某些时候,我使用id()函数来获取对象的地址。然后将该地址用作字典中的键。

这是引起问题的.pyx文件的代码

    @cython.cdivision(True)
    def get_position(self, Xp_py):
        cdef int ix = id(Xp_py)
        cdef int i = self.search_position(Xp_py, ix)

id()函数导致以下错误: “ OverflowError:值太大,无法转换为int”,这很奇怪,因为id()的类型为int ...

我尝试将ix的类型更改为long,并且不会崩溃,但是以下函数的结果很奇怪。我希望有人可以对此行为提供一些见识。

0 个答案:

没有答案