11

我在docs中看到,我可以用 int 构建元组值(指定'i')。我需要用 bool 制作元组,例如(True, 10). 如何用 bool 制作这样的元组(需要什么说明符)?

4

1 回答 1

18

该转换没有预定义的格式字符,但通过在元组中插入Py_TruePy_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);
于 2014-01-19T19:13:49.413 回答