Steven D'Aprano wrote:
On Sat, 31 Jul 2010 13:29:25 +0000, Brian Victor wrote:
Steven D'Aprano wrote:
On Sat, 31 Jul 2010 14:25:39 +1200, Gregory Ewing wrote:
Steven D'Aprano wrote:
A
/ \
C B
\ /
D
/ \
E F
Yes, a super call might jog left from C to B, but only when being
called from one of the lower classes D-F. That's still an upwards
call relative to the originator, not sidewards.
But it's not an upward call relative to the class mentioned in the
super() call, which is why I say it's misleading.
Which class would that be?
I think I'm going to need an example that demonstrates what you mean,
because I can't make heads or tails of it. Are you suggesting that a
call to super(C, self).method() from within C might call
B.method(self)?
Yes, it would.
[snip example]
Right, now I see what you mean. I don't have a problem with that
behaviour, it is the correct behaviour, and you are making the call from
D in the first place, so it *must* call B at some point.
If you initiate the call from C instead:
[snip]
I think the point is that when D initiates the super() chain, and C
calls super, B will then get its turn -- which has to seem arbitrary
from C's point of view.
~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list