super() doesn't get superclass

Michele Simionato michele.simionato at gmail.com
Wed Sep 19 09:41:34 EDT 2007


On Sep 19, 3:22 pm, Sion Arrowsmith <si... at chiark.greenend.org.uk>
wrote:
> Ben Finney  <bignose+hates-s... at benfinney.id.au> wrote:
>
> > If a function is named 'super' and operates on
> >classes, it's a pretty strong implication that it's about
> >superclasses.
>
> But it doesn't (under normal circumstances) operate on classes.
> It operates on an *instance*. And what you get back is a (proxy
> to) a superclass/ancestor of the *instance*.
>
> (And in the super(A, B) case, you get a superclass/ancestor of
> *B*. As has just been said somewhere very near here, what is
> misleading is the prominence of A, which isn't really the most
> important class involved.)
>

Happily A (and B too) will become invisible in Python 3000.

    Michele Simionato




More information about the Python-list mailing list