Handling variable number of arguments.
Michael P. Reilly
arcege at shore.net
Thu Jun 3 08:31:46 EDT 1999
bhosu at my-deja.com wrote:
: Hi All,
: I am embedding Python in an application(C++). I would like to pass
: variable number of args to the python function. I could do that from
: python by using def foo(*args). How do I parse these arguments inside my
: application? In PyARg_ParseTuple, I have to know exactly how many args
: to read etc. I am using Python v 1.4. I was looking at
: PyArg_ParseTupleAndKeywords but that needs the args to be a dictionary.
: I am looking a similar thingy for lists. A typeical scenario of the
: usage is like,
: import foo
: foo.set_args('bar','=','1','2','3')
: where foo is the module containing the method implementation.
: Thanks,
: Bhosu.
It looks like you already know how to use PyArg_ParseTuple, so you are
halfway there. You process the args as a tuple itself. For example,
static int foo_argc = 0;
static PyObject *foo_argv[];
static PyObject *
foo_set_args(PyObject *self, PyObject *args)
{ register int count, length;
foo_argc = length = PyTuple_Size(args);
for (count = 0; count < length; count++) {
item = PyTuple_GetItem(args, count);
Py_INCREF(item);
foo_argv[count] = item;
}
foo_argv[length] = NULL;
Py_INCREF(Py_None);
return Py_None;
}
Is this kind of what you are looking for?
-Arcege
More information about the Python-list
mailing list