On 17 April 2015 at 18:39, Guido van Rossum <guido@python.org> wrote:
> I think you've found an unintended and undocumented backdoor. I admit I
> don't understand how this works in CPython. Overloaded operators like
> __add__ or __call__ should be methods in the class, and we don't look for
> them in the instance. But somehow defining them with @property works (I
> guess because @property is in the class).
>
> What's different for __call__ is that callable() exists. And this is
> probably why I exorcised it Python 3.0 -- but apparently it's back. :-(
And for much that I've searched I've never found out the reasoning on
that exorcism.
Since you are at it, could you describe it?
I am glad it is back - I think it is definitely needed - even if just
works in a sort
of naive way.