I've discovered a function in the Python C API named PyEval_CallFunction
which seems to be useful. It allows you to invoke a Python callable by saying something like:
PyEval_CallFunction(obj, "OOO", a, b, c);
However, I can't find any official documentation on this function. A google search brings up various unofficial tutorials which discuss this function, but:
The function isn't documented in the official Python docs, so I don't know if it's even something that is supposed to be part of the public API.
Searching the web turns up inconsistent usage policies. Some tutorials indicate the format string needs parenthesis around the type list, like
"(OiiO)"
, whereas other times I see it used without the parenthesis. When I actually try the function in a real program, it seems to require the parenthesis, otherwise it segfaults.
I'd like to use this function because it's convenient. Does anyone know anything about this, or know why it isn't documented? Is it part of the public API?