我有一个较大的项目,它使用一些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
,并且不会崩溃,但是以下函数的结果很奇怪。我希望有人可以对此行为提供一些见识。