函数中临时变量的Py\u DECREF

2024-06-08 14:20:18 发布

您现在位置:Python中文网/ 问答频道 /正文

根据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));
}

这两位代码是相同的,还是第二个示例会导致问题?你知道吗


Tags: namepyimportfilenamemodulecharconstvoid