Name
PyArg_ParseTupleAndKeywords
Synopsis
int PyArg_ParseTupleAndKeywords(PyObject*tuple
,PyObject*dict
, char*format
,char**kwlist
,...)
Returns 0
for errors, a value not equal to
0
for success. tuple
is
the PyObject*
that was the C
function’s second argument.
dict
is the PyObject*
that was the C function’s third argument.
format
is like for
PyArg_ParseTuple
, except that it cannot include
the (...)
format code to parse nested sequences.
kwlist
is an array of
char*
terminated by a NULL
sentinel, with the names of the parameters, one after the other. For
example, the following C code:
static PyObject* func_c(PyObject* self, PyObject* args, PyObject* kwds) { static char* argnames[] = {"x", "y", "z", NULL}; double x, y=0.0, z=0.0; if(!PyArg_ParseTupleAndKeywords( args,kwds,"d|dd",argnames,&x,&y,&z)) return NULL; /* rest of function snipped */
is roughly equivalent to this Python code:
def func_py(x, y=0.0, z=0.0): x, y, z = map(float, (x,y,z)) # rest of function snipped
Get Python in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.