这个Py list_Append(list,Py_BuildValue(…)是否泄漏?

2024-05-19 03:21:26 发布

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

这个漏水吗?以下内容:

static PyObject* foo(PyObject* self, PyObject* args){
    PyObject* list = PyList_New(0);
    for(int i = 0; i < 100; i++)
        // leak? does PyList_append increment ref of the temporary?
        PyList_Append(list, Py_BuildValue("i", 42)); 
    return list;
}

不过,无论如何,我想还是这样比较好?以下内容:

static PyObject* foo(PyObject* self, PyObject* args){
    PyObect* list = PyList_New(100);
    for(int i = 0; i < 100; i++)
        PyList_SetItem(list, i, Py_BuildValue("i", 42));
    return list;
}

Tags: pyselfnewforreturnfooargsstatic

热门问题