2012-03-27 56 views
1

當我從PyArg_ParseTuple獲得PyObject *時,我是否需要確保在函數返回前我需要Py_DECREFPython 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. 
} 

回答