Это простой пример из документации по питону (http://docs.python.org/extending/extending.html):
static PyObject *
spam_system(PyObject *self, PyObject *args)
{
const char *command;
int sts;
if (!PyArg_ParseTuple(args, "s", &command))
return NULL;
sts = system(command);
return Py_BuildValue("i", sts);
}
Если я хочу передать дополнительный логический параметр в функцию - каков «правильный» способ сделать это?
Кажется, нет опции bool для передачи в PyArg_ParseTuple (). Поэтому я подумал о следующем:
- читать целое число и просто использовать значение (так как bool является подклассом int)
- вызовите PyBool_FromLong () для целого числа
- для чтения и объекта и вызовите PyBool_Check () для проверки, что это bool
- , возможно, есть способ получить любой тип переменнойи получить его значение истинности (т. е. пустой массив будет ложным и т. д.), что обычно делает функция python.
Любой из этих предпочтительных? Другие варианты?