"Jason" <[EMAIL PROTECTED]> wrote: > As far as I can tell, the best way to use super() with an __init__ > function is to stick to a rigid function signiture. ... > Unfortunately, I don't see a way of avoiding this problem with super().
An easy way to avoid changing the method signature is to use a multi-stage construction. So if your class hierarchy uses: def __init__(self, foo, bar): super(ThisClass, self).__init__(foo, bar) ... whatever ... and you are adding another class to the hierarchy, but that needs a 'baz' as well, don't change the signature for __init__, add another method: def set_baz(self, baz): ... Then at the point you construct the objects you can call: x = DerivedClass(foo, bar) x.set_baz(baz) If set_baz isn't called then you either use a default value or throw an error when something depends on it having been set. -- http://mail.python.org/mailman/listinfo/python-list