Dynamically Changing the Base Class
George Sakkis
george.sakkis at gmail.com
Mon Jul 7 10:11:57 EDT 2008
On Jul 7, 9:31 am, "Adam C." <adam... at gmail.com> wrote:
> We have a situation where we want a Swig-generated Python class to
> have a different base (not object). It doesn't appear that we can
> coerce Swig into generating the class we want at present (but we are
> still enquiring).
>
> Is it possible to dynamically change the base class to something else?
> Initial experiments appear to show it is not:
> -------------------------------- snip -------------------------------->>> class Foo(object):
>
> pass
>
> >>> class Foozle(object):
>
> pass
>
> >>> Foozle.__bases__ = (Foo,)
>
> Traceback (most recent call last):
> File "<pyshell#6>", line 1, in <module>
> Foozle.__bases__ = (Foo,)
> TypeError: __bases__ assignment: 'Foo' deallocator differs from
> 'object'
> -------------------------------- snip --------------------------------
>
> Is there a solution I am missing?
>
> Thanks in advance.
Supposedly it should (usually) work, there's a 6 year old patch for
this (http://bugs.python.org/issue635933). Check if Swig can generate
old-style classes (i.e. not inheriting from object) since __bases__
assignment works for them.
HTH,
George
More information about the Python-list
mailing list