[Tutor] Re-instantiate within __init__
alan.gauld at freenet.co.uk
Wed Apr 19 19:24:47 CEST 2006
> is it correct that an object cannot be re-instantiated within it's
> __init__ method?
There are some tricks you can pull but the object is actually instantiated
before the init gets called. Really init is for initialisation of the
it's not a true constructor.
> Background: I need to create a new object upon instantiation
> when a database query returns no records.
I'd probably create a factory function to do this that
returns the appropriate type of instance.
else: return Emptyclass()
If the two classes are subclassed from a common ancestor you
might put the factory into the class as a class method, but I'd
probably just keep it as a function. That keeps the two class's
definitions clean and decoupled from the instantiation decision
which isn't really their responsibility - children don't choose to be
More information about the Tutor