Hi Petr!

Petr Viktorin schrieb am 14.01.20 um 14:37:
> It also includes a more drastic change: it removes the MRO walker from the
> proposal.
> Reflecting on the feedback, it became clear to me that a MRO walker, as it
> was described, won't give correct results in all cases: specifically, is a
> slot is overridden by setting a special method from Python code, the walker
> won't be able to find module. Think something like:
>     c_add = Class.__add__  # where nb_add uses the MRO walker
>     Class.__add__ = lambda *args: "evil"
>     c_add(Class(), 0)  # Exception: Defining type has not been found.
> 
> This can be solved, but it will need a different design and more
> discussion. I'd rather defer it to the future.
> Meanwhile, extension authors can use their own MRO walker if they're OK
> with some surprising edge cases.

I read the last update. I can't say I'm happy about the removal since I was
seeing the MRO walker function as a way to hide internals so that extension
authors can start using it and CPython can adapt the internals later. But I
do see that there are issues with it, and I accept your choice to keep the
PEP even more minimal than it already was.

Are there any more points to discuss? If not, I would soon like to accept
the PEP, so that we can focus more on the implementation and usage.

Stefan
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/OGMUNR4ZPMPXTWJMFCWPZ5ITJJ2G7O3F/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to