Py_DECREF для временных переменных в функциях - PullRequest
0 голосов
/ 26 апреля 2019

В соответствии с принятым ответом в Py_INCREF / DECREF: когда , для объектов 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));
}

Являются ли эти два бита кода идентичными, или второй пример вызовет проблемы?

...