Subclassing in C
Iker Arizmendi
iker at research.att.com
Wed Sep 15 12:10:16 EDT 2004
Michael Hudson wrote:
> OK, some questions.
>
> 1) You must be assuming 2.2 or later, right? tp_base doesn't make
> sense before then.
Yup, 2.2 or later (although I'm currently using 2.3).
> 2) Is this a third party base type?
Not really, it's written by another fellow here. But
I have access to the source and am free to make small
changes.
> 3) If 2) is the third party assuming 2.2 or later?
I think it was written before 2.2, but I've made some
changes that I think make it 2.2 compliant (eg, I added
the Py_TPFLAGS_BASETYPE flag, prepared the type with
PyType_Ready, and changed it to use tp_getattro instead
of tp_getattr.
> If 2) but not 3), you might be in for some hacking (as you later came
> up with). You can't really subclass (cleanly) a type that's totally
> unprepared for it.
So I guess I have (!2 && !3), but I think I've managed
to change that to (!2 && 3). So assuming I have two types,
both written in C, what's the clean way to do the
subclassing? In particular, it would be nice if the C API
did the search of my bases for me.
>
> Py_FindMethod() is SO 2001 :-)
Just got started with Python and put on the first thing
I found. Didn't realize they were bell bottoms :)
Is there a newer method?
Regards,
Iker
More information about the Python-list
mailing list