Here's some code from Python in a Nutshell. The comments are lines from a previous example that the calls to super replace in the new example:
class A(object): def met(self): print 'A.met' class B(A): def met(self): print 'B.met' # A.met(self) super(B, self).met() class C(A): def met(self): print 'C.met' # A.met(self) super(C, self).met() class D(B, C): def met(self): print 'D.met' # B.met() # C.met() super(D, self).met() Then you call D().met() Now, I understand that the commented code would cause A.met to be called twice. But why does the second version (with super) not also do this? I guess my problem lies in not understanding exactly what the super function returns. super(D, self).met() seems like it would return something that has to do with both B and C, which each in turn return a superobject having to do with A, so why isn't A.met called twice still? Thanks! -- http://mail.python.org/mailman/listinfo/python-list