[Python-Dev] Re: Writing a mutable object problem with __setattr__

Jeremy Hylton jeremy@zope.com
25 Feb 2003 12:52:27 -0500


On Tue, 2003-02-25 at 12:31, Guido van Rossum wrote:
> > I've tried this, but then I was unable to create any of the 
> > old-style classes. Is there any solution that would let me mutate 
> > an object into both? I suspect not. Then the question is:
> 
> No, you can never switch an object from classic to new-style.

One possibility, which isn't quite the same thing, is to derive a
new-style class from the classic class.  You can write this with a class
statement like so:

import cgi

class FormContent(cgi.FormContent, object):
    pass

or you can generate one manually:

type.__new__(type, "FormContent", (cgi.FormContent, object), {})

In either case, you will have a new-style class that inherits all of its
behavior from the classic class.

Jeremy