2012-03-27 6 views
1

Когда у меня есть PyObject *, полученный от PyArg_ParseTuple, должен ли я быть уверенным в Py_DECREF, прежде чем я вернусь от функции?Функция аргумента аргумента функции модуля Python C

Пример:

static PyObject * modulefunc(PyObject * self, PyObject * args) { 
    PyObject * obj; 
    if (!PyArg_ParseTuple(args, "O", &obj)) { 
     return NULL; 
    } 

    if (!PyObject_TypeCheck(obj, expected_type_ptr)) { 
     // Do I need to Py_DECREF(obj) here? 
     PyErr_SetString(PyExc_TypeError, "First argument is not expected type."); 
     return NULL; 
    } 

    // ... rest of function implementation. 
} 

ответ

Смежные вопросы