En Wed, 08 Apr 2009 18:11:37 -0300, venkat sanaka <venkatsan...@gmail.com> escribió:

i was using python/c api to call a python function from c and I know the
name of the function which i want to call.Is there any way to do that??
This is the method i tried...

for eg:This is the python function i wants to call.
 >>>def add(x):
...       return x+10


This is my code in C:
    PyObject *result = NULL;
    int arg;
    PyObject *arglist;
    arg = 123;
    my_callback = "add";
    arglist = Py_BuildValue("(i)", arg);
    result = PyObject_CallObject(my_callback, arglist);
    Py_DECREF(arglist);
    return result;

I was getting a error like "str object is not callable".From the error i
came to know that i was assigning "add" as a string which caused this
error.Then how to make it a callable object??

This is what one would write in Python:

import some_module
some_module.add(123)

Do the same in C:

callback = PyObject_GetAttrString(some_module, "add");
if (!callback) ...error...
result = PyObject_CallFunction(callback, "i", arg);
Py_DECREF(callback);
return result;

--
Gabriel Genellina

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to