Python C API布尔对象
Python C API Boolean Objects
我正在将Python C API 2.7.2与我的C++控制台应用程序一起使用。关于Python C API布尔对象有一个疑问
我正在使用:
PyObject* myVariable = Py_True;
我需要尊重myVariable和Py_DECREF(myVariable)
吗?
Python C API文档中写道:-
Python True对象。此对象没有方法。它需要就引用计数而言,像对待任何其他对象一样对待。
我搜索了这些问题,但找不到明确的答案
谢谢。
尽管它不是动态创建的,但它必须被引用计数,因为PyObject变量可以容纳任何Python对象。否则,需要检查Py_True和散布在整个Python运行时中的其他特殊情况,以及使用API的任何C/C++代码。这将是混乱和容易出错的。
在引用计数方面,需要像对待任何其他对象一样对待它。
这意味着您在获取其参考时必须将其递增
{
Py_INCREF(Py_True);
PyObject* myVariable = Py_True;
并且您必须在处理它时减少它。
Py_DECREF(myVariable);
}
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- CMake-按正确顺序将项目与C运行时对象文件链接
- fstream / ifstream / ofstream 对象如何转换为布尔值
- Android :需要在 c++ NDK 中创建共享首选项对象并存储一些布尔值
- 布尔值与虚空*在同一对象上投射
- 为什么C++ std::min_element 库函数接受采用布尔返回类型的函数对象的函子,而不是像 C 中那样的 in
- 在一个作用域中推送五个对象指针,然后检查对象的布尔值是否为 false,会给出错误
- 给定仅包含布尔类型成员的结构的两个对象 s1 和 s2,只要 s1 的成员为 true,请检查 s2 的每个成员是否为真
- Python:我们应该如何编写一个函数来返回对象/列表和布尔标志
- 基于C 中布尔值向量中的向量中选择对象
- 使用布尔值数组"表达式必须具有指向对象类型的指针"错误C++
- 当对象同时提供“运算符!”和“运算符布尔”时,在表达式“!obj”中使用
- C++ 基于成员布尔值对向量中的对象进行排序
- Python C API布尔对象
- C++将 HashMap<string、布尔>对象返回到 Java
- 防止来自布尔值的隐式对象构造
- 哪个操作符重载被用于ifstream对象求值为布尔值
- 如何在布尔上下文中直接计算对象
- 布尔表达式中使用的C++对象/类实例