converting base class instance to derived class instance

John Roth newsgroups at jhrothjr.com
Mon Feb 9 12:36:35 EST 2004


"François Pinard" <pinard at iro.umontreal.ca> wrote in message
news:mailman.1372.1076344361.12720.python-list at python.org...
[John Roth]

> If you want to do a little bit of deep magic, a factory function can
> create an instance by calling object(), plug in whatever attributes
> it wants and then change the __class__ attribute to whatever class it
> wants before it returns the newly minted instance. It doesn't have
> to go near anything that resembles a constructor (other than calling
> object() to get a new instance, of course.)

Hello, John, and gang! :-)

How one does that?  I'm merely curious.  Using Python 2.3.3, the result
of `object()' does not have a `__dict__', and seemingly may not be given
a `__dict__' either.  See:

[John's answer]
My goof. The correct call is:

object.__new__(klas)

where klas is the class object you want
the instance constructed for.


John Roth


-- 
François Pinard   http://www.iro.umontreal.ca/~pinard





More information about the Python-list mailing list