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

Reply via email to