Python C 模块函数参数引用计数
Posted
技术标签:
【中文标题】Python C 模块函数参数引用计数【英文标题】:Python C module function argument reference counting 【发布时间】:2012-04-11 04:00:41 【问题描述】:当我有一个从PyArg_ParseTuple
获得的PyObject *
时,我是否需要在从函数返回之前确保Py_DECREF
它?
例子:
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.
【问题讨论】:
【参考方案1】:没有。 PyArg_ParseTuple 给你一个borrowed reference。
【讨论】:
以上是关于Python C 模块函数参数引用计数的主要内容,如果未能解决你的问题,请参考以下文章