Frage

I see in docs, that I can build tuple value with int (specifying 'i'). I need to make tuple with bool, e.g. (True, 10). How can I make such tuple with bool (what specifier needed)?

War es hilfreich?

Lösung

There is no predefined format character for that conversion, but it is trivial to simulate one by inserting Py_True or Py_False object into the tuple, as appropriate. For example:

int i = ...;
bool b = ...;
PyObject *tuple_with_bool = Py_BuildValue("Oi", b ? Py_True: Py_False, i);

Another option is to use PyBool_FromLong to do the conversion. In that case, remember to use the N format to account for PyBool_FromLong returning a new reference:

PyObject *tuple_with_bool = Py_BuildValue("Ni", PyBool_FromLong(b), i);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top