Using alternative PyObject* in dynamically created classes

Jacek Generowicz jacek.generowicz at cern.ch
Wed Nov 24 08:20:43 EST 2004


Jacek Generowicz <jacek.generowicz at cern.ch> writes:

> Thomas Heller <theller at python.net> writes:
> 
> > Jacek Generowicz <jacek.generowicz at cern.ch> writes:

...

> > Can't you simply create a new, subclassable Python type with an
> > additonal void* slot, and derive your classes from it?  Where's the
> > problem?
> 
> You mean statically create an extension type with the appropriate size
> in the tp_basicsize, and dynamically create types which inherit from
> it?
> 
> Sounds like it should work.
> 
> I'll give it a go, as I now see that my initial approach is guaranteed
> to be wrong.

Given that type_new builds the contents of the tp_basicsize slot on
the basis of the supreclass's tp_basicsize, it seems that setting the
size in a superclass is the only way of getting some non-standard size
in there, without re-writing the whole of type_new.

So, I tried this approach. It works.



More information about the Python-list mailing list