Python/C API and setattr

Thomas S. Strinnhed thstr at serop.abb.se
Wed Jun 9 09:48:48 EDT 1999


Hi,

Thanks, but unfortunately it doesn't seem to be the problem.
Please take a look at the response posted to myself.

Thank you

-- Thomas S. Strinnhed, thstr at serop.abb.se

Gordon McMillan wrote:
> 
> Thomas S. Strinnhed writes:
> >
> > I'm building an extention type for Python in C using NT, MSVC++.
> 
> > I've looked pretty much at Mark Lutz's example StackType  from
> > Programming Python and I think I'm doing the same, but I've added
> > setattrfunc to be able to directly manipulate value as c.value = 23
> > and when I use it something goes wrong. (inc() and dec() work fine)
> >
> > Python 1.5.2 (#0, Apr 13 1999, 10:51:12) [MSC 32 bit (Intel)] on
> > win32 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
> > >>> from CounterType import *
> > >>> c = Counter()
> > >>> c.value = 23
> > Traceback (innermost last):
> >   File "<stdin>", line 1, in ?
> > SystemError: error return without exception set
> 
> You returned NULL (or 0, or the compiler generated a return of NULL
> because you didn't state anything) from your C code. That signifies
> an error to Python, which expects you to have set an error string.
> 
> Return (an increfed) None and Python will be happy.
> 
> > >>> c.value
> > 23
> > >>>
> > The value is set properly but I can't figure out the system error,
> > it seems to be something wrong with my setattrfunc.
> >
> > static void counter_setattr
> >  (counterobject *self, char *name, PyObject *v)
> > {
> >  if(strcmp(name, "value") == 0)
> >  {
> >   self->value = (int)PyInt_AsLong(v);
> >  }
> > }
> >
> > But what would that be??
> > I have a hard time finding examples of how to do setattr so
> > any pointers would be great. Also if someone understands this error,
> > please post an answer.
> >
> > My counterobject is this:
> > typedef struct
> > {
> >  PyObject_HEAD
> >  int value;
> > } counterobject;
> >
> > Thanks
> >  -- Thomas S. Strinnhed, thstr at serop.abb.se
> >
> > --
> > http://www.python.org/mailman/listinfo/python-list
> 
> - Gordon




More information about the Python-list mailing list