Checking the type of a PyObject

Fredrik Lundh fredrik at pythonware.com
Sun Aug 12 07:34:57 EDT 2001


wim delvaux wrote:
> in C  (Making abstraction of a lot of other stuff )
>
> Mod_Function( PyObject *self, PyObject *args )  {
>
>           PyObject * FirstArg;
>
>            if (!PyArg_ParseTuple(args, "o", &FirstArg ))
>                return NULL;

    if (!PyArg_ParseTuple(args, "O", &FirstArg ))
        return NULL;

>
>           /* And then something like */
>
>           if( Py_GetType( FirstArg ) == String ) {

    if (PyString_Check(FirstArg)) {

>               char * String;
>               PyArg_ParseTuple( args, "s", &String );

    String = PyString_AS_STRING(FirstArg)

>           } else if ( Py_GetType( FirstArg ) == Integer ) {

    } if (PyInt_Check(FirstArg)) {

>               long IVal;
>               PyArg_ParseTuple( args, "i", &IVal);

    IVal = PyInt_AsLong(FirstArg)

>           } else {
>               return NULL;

    PyErr_SetString(PyExc_TypeError, "expected string or integer");
    return NULL;

>           }
> }
>
> What would be the correct Python Library code to implement the above
> pseudo code

taking another look at the Extension/Embedding and C API docs
might help.  if you need sample code, look under Modules in the
source distribution.

</F>

<!-- (the eff-bot guide to) the python standard library:
http://www.pythonware.com/people/fredrik/librarybook.htm
-->





More information about the Python-list mailing list