[IronPython] Initialisation of .NET Subclasses

Michael Foord fuzzyman at voidspace.org.uk
Thu Mar 15 01:14:06 CET 2007


Dino Viehland wrote:
> You are correct in that __new__ methods map to the .NET ctor (both __new__ and the ctor can only be run once, while __init__ can be called an arbitrary number of times).  Of course someone can construct a type from C# which has particular __init__ or __new__ semantics but you won't run into that in Winforms.
>
> The only interesting thing about not calling __init__ is if multiple inheritance starts coming into the picture.  Then you might want to call your super's __init__ to ensure everyone gets __init__ run.  Unfortunately doing super(...).__init__ to make this work seems to be questionable as it may open up its own set of issues.
>
> But there's certainly no need to Form.__init__.
>   
Thanks Dino.

I think I'll leave it in my examples as it is generally good practise - 
except in cases of multiple inheritance which is rarely good practise 
anyway. :-)

Michael

> ________________________________________
> From: users-bounces at lists.ironpython.com [users-bounces at lists.ironpython.com] On Behalf Of Michael Foord [fuzzyman at voidspace.org.uk]
> Sent: Wednesday, March 14, 2007 4:25 PM
> To: Discussion of IronPython
> Subject: [IronPython] Initialisation of .NET Subclasses
>
> Hello all,
>
> I'm wondering about best practise when subclassing Windows Forms
> controls. I have a vague memory of hearing that initialisation is done
> in the '__new__' methods of .NET controls, so that '__init__' overrides
> *need not* call up to their base class. Is this correct, or was I
> hallucinating ?
>
> In other words, is the following ok :
>
> class MainForm(Form):
>     def __init__(self):
>         pass
>
> Or should I be doing :
>
> class MainForm(Form):
>     def __init__(self):
>         Form.__init__(self)
>
> ?
>
> All the best,
>
> Michael Foord
> http://www.voidspace.org.uk/ironpython/
> _______________________________________________
> users mailing list
> users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> _______________________________________________
> users mailing list
> users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>   




More information about the Ironpython-users mailing list