Well im not really sure a board on maya usage is the best most conductive place to general python usage questions. You can use super to get the superclass. However since python has a multi inheritance so super may become very ugly. Tough coders usually frown uppon using direct calls to superclass anyway. Mainly because theres no need to do so.
http://en.wikipedia.org/wiki/Call\_super
even if you dont call super you call it implicitly still as bad. So usually you could avoid doing it this way and refactor it away, by making a not so private call that wraps the functionality of the init (it is more discoverable and easier to modularize).
But yes your problem is pretty clear:
def \_\_init\_\_(self, name, default = "default")
def \_\_init\_\_(self, subdefault = "subdefault"):
dont match. so theres no stuff ror the other init to pass the names it must specify something similliar remeber your not feeding the same things. Easiest fix is :
class Sub(Test):
def __init__(self, name, default = "default", subdefault = "subdefault"):
Test.__init__(self, name, default)
self.subdefault = subdefault
def print_init(self):
print self.name, self.default, self.subdefault
See subclassing does not do partial lines if you override the function input you override ALL OF IT. No magic there.