Using PyArg_VaParse

Christian Tismer tismer at appliedbiometrics.com
Tue Jun 8 12:01:06 EDT 1999


bhosu at my-deja.com wrote:
> 
> Hi All,
>    I want to use PyArg_VaParse to retrieve variable number of arguments.

Why? See below.

> I am not sure if this is the correct function to use. I have embedded
> python in a C++ application and implemented python methods in C++. I
> have a situation where, the method may pass any number of string
> parameters. I would like to get these parameters in my C++ code. Here is
> a scenario of the whole thing.
> 
> (C++ implementation.. for method bar in the module foo.)
> 
> static PyObject *bar(PyObject *self,PyObject *args)
> {
> ....
> if(PyArg_VaParse(args,...) /* What is that I need to use here...? */
> ...
> }

The PyObject *args is already a Tuple, so the only thing
you need to do is to check its length and if
the parameters are stings indeed.

> 
> and a pythod call may be like,
> import foo
> foo.bar('a','b','c')
> foo.bar('a','b','c','d'.....)
> 
> I need to know the Python API call to use to get the arguments. As I
> said before I donot know how many arguments are being passed.

Just use PyTuple_Size(args), in a loop
use PyTuple_GetItem(args, i)
and check them each with PyString_Check.

good luck - chris

-- 
Christian Tismer             :^)   <mailto:tismer at appliedbiometrics.com>
Applied Biometrics GmbH      :     Have a break! Take a ride on Python's
Kaiserin-Augusta-Allee 101   :    *Starship* http://starship.python.net
10553 Berlin                 :     PGP key -> http://wwwkeys.pgp.net
PGP Fingerprint       E182 71C7 1A9D 66E9 9D15  D3CC D4D7 93E2 1FAE F6DF
     we're tired of banana software - shipped green, ripens at home




More information about the Python-list mailing list