En Tue, 13 Nov 2007 01:45:31 -0300, Donn Ingle <[EMAIL PROTECTED]> escribió:
>> You need to be a new-style class (that is, you must inherit from >> object) for super() to work. > Problem is that my classes inherit already, from others I wrote. So, > should > I explicitly put (object) into the ones at the top? Changing from old-style to new-style classes may have some unintended side effects. You may prefer keeping your old-style classes and avoid using super, if you don't have multiple inheritance. Just call explicitely the base class. >> Other than that, you are using it >> correctly here. > Well, even with <One.add(stuff)> it seems to be calling to local > overridden > method. In a bit of a hurry, so can't test again right now. Remember that you must pass `self` explicitely. That is: class One: def __init__(self): self.stuff = [] def add (self, stuff): self.stuff.append(stuff) class Two(One): def __init__(self, otherstuff): One.__init__(self) One.add(self, otherstuff) self.unrelated = [] def add (self, data): self.unrelated.append(data) py> x = One() py> x.add(1) py> x.stuff [1] py> y = Two(2) py> y.add(3) py> y.stuff [2] py> y.unrelated [3] -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list