On 02/08/2012 10:21, rahul wrote: > > Hi TJG, > > The above link also doesn't strictly said that return value should be > NULL only, it only said that usually NULL pointer used. No where I > saw that it is nessasory t > > At http://docs.python.org/c-api/exceptions.html. it is written that > "Most functions also return an error indicator, usually NULL if they > are supposed to return a pointer, or -1 if they return an integer > (exception: the PyArg_*() functions return 1 for success and 0 for > failure)." this also told that usually NULL is used but we can change > the return error indicator to any value. As like PyArg_*() used 0 for > error value.
The docs you quote are very slightly confusing because they're combining the standard practice (return NULL), the uncommon alternative (return -1) and a few special cases present in the core functions. In short, any function you expose in an extension module will be returning a PyObject* and should return NULL if it is setting or cascading an exception. I'm not convinced that the docs need altering here: this is the first time I've come across anyone who was confused. But if you think some different wording might help, feel free to propose something. TJG -- http://mail.python.org/mailman/listinfo/python-list