2008/5/1 Facundo Batista <facundobatista@gmail.com>:
2008/5/1, Georg Brandl <g.brandl@gmx.net>:

>   There may be more implications and surprising behavior surrounding this.
>  I know that the implementation is a compromise, but I'd rather see a
> super()
>  whose full semantics can be explained to programmers without using to
>  "cell variable", "f_localsplus" and "symtable".

In consideration of what's been said about super() in the past, and
what is handled here regarding its Py3 implementation, I want to make
a step  back, and ask:

Has super() proved more useful than harmful? Which is the value for
Py3 to keep it?

Since Python supports multiple inheritance, you can't get away from something like super.  Alternatives for methods chaining to parent classes are 1. implicit/automatic (like C++, I think), 2. explicit/semi-automatic (python's super, on one form or another, 3. explicit manual (programmer has to manually keep track of everything).  Of all these alternatives I prefer Python's super (in one form or another).  1 is too "magic", and 3 is too error prone and cumbersome.

A better question would be, is multiple inheritance good or bad for programs? :-)

I think many people's answer to the above would be, generally bad, but there are exceptions where it helps and can be justified.


.    Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/

Gustavo J. A. M. Carneiro
INESC Porto, Telecommunications and Multimedia Unit
"The universe is always one step beyond logic." -- Frank Herbert