[Python-3000] Fixing super anyone?

Jim Jewett jimjjewett at gmail.com
Tue Apr 24 01:50:39 CEST 2007


On 4/23/07, Adam Olsen <rhamph at gmail.com> wrote:
> On 4/23/07, Phillip J. Eby <pje at telecommunity.com> wrote:
> > But I can't say I particularly like this idea, compared to "super.foo" or
> > even "super(self).foo".  In fact, the latter invocation doesn't even
> > require a keyword -- it just means the compiler needs to include a cell
> > variable for the current class whenever it thinks you might be using super().

> +1 on super(self).foo.  It's SomeLongClassName we want to get rid of, not self.

It won't normally be for an attribute.  Typically, it would look like:

    super(self).foo(arg1, arg2)

or even

    super(self).foo()

I'm not sure that is much improvement over explicitly showing the
class, though it is certainly an improvement over using the
(rebindable) class name.

> As a bonus, super() and super(cls) have obvious semantics.

What would they be?  Are you assuming that the two-argument forms
would go away?  Or that the *first* positional argument could be
defaulted to __this_class__, but the second would be mandatory?

-jJ


More information about the Python-3000 mailing list