[英]convert PyInt to C Int
我需要将PyInt转换为C int。 用我的代码
count=PyInt_FromSsize_t(PyList_Size(pValue))
pValue是一个PyObject,即PyList。 我遇到的问题是PyList_Size没有返回正确的列表大小(计数应该为5,但它给了我600万),或者数据类型存在问题,因为im代码是在C代码中连接到python脚本的。 理想情况下,我希望计数为C int类型。
我发现python / c API返回了我很长的C数据类型...这不是我想要的...任何人都可以将我指向正确的方法或API?
PyInt_FromSsize_t()
返回位于内存中的完整的Python int
对象,并返回其内存地址-这就是600万个数字的来源。 您只想获取PyList_Size()
返回的标量并将其转换为C整数,我认为:
count = (int) PyList_Size(pValue)
如果列表很长,则可能需要考虑long
count
,在这种情况下,您可以强制转换为该特定类型。
注意: -1
表示Python在尝试测量列表长度时遇到了异常。 这是您应该阅读以了解如何处理异常的文档:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.