我在docs中看到,我可以使用int(指定'i')构建元组值。我需要用bool制作元组,例如(True, 10)
。我如何用bool制作这样的元组(需要什么说明符)?
答案 0 :(得分:15)
该转换没有预定义的格式字符,但根据需要,通过将Py_True
或Py_False
对象插入元组来模拟一个字符很简单。例如:
int i = ...;
bool b = ...;
PyObject *tuple_with_bool = Py_BuildValue("Oi", b ? Py_True: Py_False, i);
另一个选择是使用PyBool_FromLong进行转换。在这种情况下,请记住使用N
格式来说明PyBool_FromLong
返回新的引用:
PyObject *tuple_with_bool = Py_BuildValue("Ni", PyBool_FromLong(b), i);