Ben Finney <[EMAIL PROTECTED]> writes: > Hrvoje Niksic <[EMAIL PROTECTED]> writes: > >> class X(Y): >> def foo(self): >> super(X, self).foo() >> >> ...there is in fact no guarantee that super() calls a superclass of >> X. However, it is certainly guaranteed that it will call a superclass >> of type(self). > > Not even that. It could call *any class in the inheritance > hierarchy*,
The inheritance hierarchiy is populated by the various (direct and indirect) superclasses of type(self). > depending on how the MRO has resolved "next class". Even one that is > neither an ancestor nor a descendant of X. My point exactly. superclass of X is not the same as superclass of type(self). Super iterates over the latter, where you expect the former. -- http://mail.python.org/mailman/listinfo/python-list