[Python-Dev] Python-versus-CPython question for mul dispatch (original) (raw)

Nathaniel Smith njs at pobox.com
Fri May 15 23:35:38 CEST 2015


On Thu, May 14, 2015 at 11:53 PM, Nathaniel Smith <njs at pobox.com> wrote:

On Thu, May 14, 2015 at 9:29 PM, Guido van Rossum <guido at python.org> wrote:

I expect you can make something that behaves like list by defining mul and rmul and returning NotImplemented. Hmm, it's fairly tricky, and part of the trick is that you can never return NotImplemented (because you have to pretty much take over and entirely replace the normal dispatch rules inside mul and rmul), but see attached for something I think should work. So I guess this is just how Python's list, tuple, etc. work, and PyPy and friends need to match...

For the record, it looks like PyPy does already have a hack to implement this -- they do it by having a hidden flag on the built-in sequence types which the implementations of '*' and '+' check for, and if it's found it triggers a different rule for dispatching to the op methods: https://bitbucket.org/pypy/pypy/src/a1a494787f4112e42f50c6583e0fea18db3fb4fa/pypy/objspace/descroperation.py?at=default#cl-692

-- Nathaniel J. Smith -- http://vorpus.org



More information about the Python-Dev mailing list