On Nov 20, 3:27 am, "Borse, Ganesh" <[EMAIL PROTECTED]> wrote: > Hi, > > My following code is failing with an error of "isSizeSmall not function or > callable" > > //--------------------------------------------------- > char szExpr[2048]; > memset(szExpr,'\0',sizeof(szExpr)); > sprintf(szExpr,"def isSizeSmall(size,vol,ADV,prod):\n if ( (size < 1000) & > (vol < (0.001 * ADV)) & (prod==\"Stock\")): return 100\n else: return > 11\n\n\n"); > > PyObject* pyco = Py_CompileString(szExpr,"<stdin>", Py_file_input); > > // Get a pointer to this function > char funcname[56]; > memset(funcname,'\0',sizeof(funcname)); > sprintf(funcname,"isSizeSmall"); > > PyObject* func = PyObject_GetAttrString(pyco,funcname); > if(!func || !PyCallable_Check(func)) > printf("%s not function or callable\n"); > //--------------------------------------------------- > > In above case, Py_CompileString parses & compiles the code successfully. > > Can we not use the "PyObject*" returned by Py_CompileString as input to > PyObject_GetAttrString? > What could be wrong? > per documentation compile string returns None when you use Py_file_input
> I want to use this function pointer returned by PyObject_GetAttrString as > input to PyObject_CallObject. > Can I use the "PyObject*" returned by Py_CompileString directly as is in call > to PyObject_CallObject? > not with Py_file_input -- http://mail.python.org/mailman/listinfo/python-list