[IronPython] __init__ ignored in favor of base class constructor? - blocker
Dan Eloff
dan.eloff at gmail.com
Sun Nov 30 16:42:51 CET 2008
On Sun, Nov 30, 2008 at 8:30 AM, Michael Foord
<fuzzyman at voidspace.org.uk> wrote:
> Hello Dan,
>
> I can't find this assembly to experiment - but when you subclass a .NET type
> in IronPython you override the constructor by overriding '__new__' and not
> '__init__'. Perhaps this is the cause of your problem? (If the default
> constructor takes two arguments then merely supplying an __init__ method
> that only takes one won't stop the default two argument constructor being
> called.)
>
I don't think I've ever subclassed a .NET type that has a default
constructor taking an argument, hopefully the problem here is with me
and not IronPython :) I thought __new__ might be the one to use, but I
got these errors with __new__:
class MyTheme(Theme):
def __new__(cls):
return Theme.__new__(cls,
Application.GetResourceStream(Uri('theme.xaml', UriKind.Relative)))
TypeError: default __new__ does not take parameters.
If I use:
class MyTheme(Theme):
def __new__(cls):
return Theme.__new__(cls)
TypeError: MyTheme() takes at least 2 arguments (1 given)
Back to square one. Do you have some idea what I'm doing wrong here?
The assembly is from the Silverlight Toolkit:
http://www.codeplex.com/Silverlight
-Dan
More information about the Ironpython-users
mailing list