[Python-3000] Fixing super anyone? (original) (raw)

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