根据Py_INCREF/DECREF: When中接受的答案,由函数创建但未显式返回的Python对象应通过DECREF
减少其引用计数。该准则适用于临时变量吗?例如,我可以这样:
void PythonInterface::SetModule (const char *filename)
{
PyObject *name = PyUnicode_DecodeFSDefault (filename);
_module = PyImport_Import (name);
Py_XDECREF (name);
}
或者这个:
void PythonInterface::SetModule (const char *filename)
{
_module = PyImport_Import (PyUnicode_DecodeFSDefault (filename));
}
这两位代码是否相同,还是第二个示例会引起问题?