2012-03-27 12 views
1

Wenn ich eine PyObject * von PyArg_ParseTuple erhalten habe, muss ich sicherstellen, dass Py_DECREF es vor der Rückkehr von der Funktion?Python C Modul Funktion Argument Referenzzählung

Beispiel:

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. 
} 

Antwort