Python's super() considered super!
sturlamolden
sturlamolden at yahoo.no
Fri May 27 19:57:16 EDT 2011
On 27 Mai, 23:49, Stefan Behnel <stefan... at behnel.de> wrote:
> I think Sturla is referring to the "compile time" bit. CPython cannot know
> that the builtin super() will be called at runtime, even if it sees a
> "super()" function call.
Yes. And opposite: CPython cannot know that builtin super() is not
called,
even if it does not see the name 'super'. I can easily make foo()
alias super().
In both cases, the cure is a keyword -- or make sure that __class__
is always defined.
If super is to be I keyword, we could argue that self and cls should
be
keywords as well, and methods should always be bound. That speaks in
favour
of a super() function. But then it should always be evaluated at run-
time,
without any magic from the parser.
Magic functions belong in Perl, not Python.
Sturla
More information about the Python-list
mailing list