首页 > 解决方案 > cython id() 函数导致整数溢出

问题描述

我有一个更大的项目,它使用了一些 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: value too large to convert to int”,这很奇怪,因为类型id()int......

我尝试更改 to 的类型ix并且long它不会崩溃,但是以下函数的结果很奇怪。我希望有人可以对这种行为有所了解。

标签: python-3.xcython

解决方案


推荐阅读