将PyInt转换为C-In

2024-09-28 05:17:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在代码中把PyInt转换成C int

count=PyInt_FromSsize_t(PyList_Size(pValue))

pValue是PyObject,PyList。我遇到的问题是PyList_的大小没有返回正确的列表大小(count应该是5,但它给了我600万),或者数据类型有问题,因为im-in-C代码与python脚本接口。理想情况下,我希望count是C int类型。在

我找到了python/capis,它们返回长c数据类型。。。这不是我想要的。。。任何人都可以告诉我正确的方法或API??在


Tags: 代码in脚本列表sizecountintpyobject
1条回答
网友
1楼 · 发布于 2024-09-28 05:17:56

PyInt_FromSsize_t()返回位于内存中的一个完整的Python int对象并返回其内存地址——这就是600万数字的来源。您只需要获得PyList_Size()返回的标量并将其转换为C整数,我想:

count = (int) PyList_Size(pValue)

如果列表可能很长,您可能需要考虑将count改为long,在这种情况下,您可以转换为该特定类型。在

注意:计数-1表示Python在尝试测量列表长度时遇到异常。为了了解如何处理异常,您应该阅读以下文档:

http://docs.python.org/c-api/intro.html#exceptions

相关问题 更多 >

    热门问题