Python C API布尔对象 我使用Python C API 2.7.2和C++控制台应用程序。关于Python C API布尔对象有一个疑问
我正在使用:Python C API布尔对象 我使用Python C API 2.7.2和C++控制台应用程序。关于Python C API布尔对象有一个疑问,python,c++,python-c-api,python-c-extension,Python,C++,Python C Api,Python C Extension,我正在使用: PyObject* myVariable = Py_True; 我是否需要将myVariable与Py\u DECREF(myVariable)区分开来 Python C API文档说明:- Python真实对象。此对象没有方法。这是必须的 就引用计数而言,与任何其他对象一样进行处理 我搜索了这些问题,但找不到明确的答案 谢谢 就引用计数而言,它需要像对待任何其他对象一样对待 这意味着您在引用它时必须增加它 { Py_INCREF(Py_True); PyObject*
PyObject* myVariable = Py_True;
我是否需要将myVariable与Py\u DECREF(myVariable)
区分开来
Python C API文档说明:-
Python真实对象。此对象没有方法。这是必须的
就引用计数而言,与任何其他对象一样进行处理
我搜索了这些问题,但找不到明确的答案
谢谢
就引用计数而言,它需要像对待任何其他对象一样对待
这意味着您在引用它时必须增加它
{
Py_INCREF(Py_True);
PyObject* myVariable = Py_True;
当你处理它时,你必须减少它
Py_DECREF(myVariable);
}
虽然它不是动态创建的,但必须进行引用计数,因为PyObject变量可以保存任何Python对象。否则,需要检查Py_True和其他分散在Python运行时中的特殊情况,以及使用API的任何C/C++代码。这将是混乱和容易出错的