[Python-Dev] Python-versus-CPython question for __mul__ dispatch
Nathaniel Smith
njs at pobox.com
Fri May 15 23:35:38 CEST 2015
More information about the Python-Dev mailing list
Fri May 15 23:35:38 CEST 2015
- Previous message (by thread): [Python-Dev] Python-versus-CPython question for __mul__ dispatch
- Next message (by thread): [Python-Dev] Python-versus-CPython question for __mul__ dispatch
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message (by thread): [Python-Dev] Python-versus-CPython question for __mul__ dispatch
- Next message (by thread): [Python-Dev] Python-versus-CPython question for __mul__ dispatch
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list