[Tutor] HELP: subclass of int

jfouhy at paradise.net.nz jfouhy at paradise.net.nz
Tue Mar 8 23:40:11 CET 2005


Quoting Max Noel <maxnoel_fr at yahoo.fr>:

> 	I'm not absolutely confident with inheritance in Python (nearly all of
> my serious OO work has been in Java), but shouldn't the call to the 
> superclass's constructor be the very first statement of the subclass's 
> constructor?

No ...

Or, well, maybe --- but __init__ is technically not the constructor.

The constructor is responsible for doing the nitty gritty work of constructing
an object, which is, I guess, why you feel it should be called first (because
you don't want to be messing with an object that does not fully exist yet).

But in python, by the time __init__ is called, the object has been fully
constructed.  __init__ is just a special method that gets called immediately
after construction.  But otherwise, there is nothing special or magical about it.

You could even do this if you wanted:

class myClass(object):
 ...
 def reInitialise(self):
  self.__init__()

although I'm not sure if this would be considered good practice :-)

[as to the original question --- someone else will have to answer, sorry, 'cause
I don't know]

-- 
John.


More information about the Tutor mailing list