That must be so that an immutable type can still implement __iop__ as an optimization. On Mon, Nov 3, 2014 at 9:10 AM, Antoine Pitrou <solipsis at pitrou.net> wrote: > On Mon, 3 Nov 2014 09:05:43 -0800 > Guido van Rossum <guido at python.org> wrote: > > Sorry, was too quick. For immutable types __iop__ may not exist and then > > the fallback machinery should work normally using NotImplemented. But if > > __iop__ exists it can choose not to allow __rop__, because the type would > > presumably change. This is probably more predictable. I don't even know > if > > the byte code interpreter looks for Not implemented from __iop__. > > Apparently it can tell it to fallback on __op__: > > >>> class C(list): > ... def __iadd__(self, other): > ... print("here") > ... return NotImplemented > ... > >>> c = C() > >>> c += [1] > here > >>> c > [1] > >>> type(c) > <class 'list'> > > > Regards > > Antoine. > _______________________________________________ > Python-Dev mailing list > Python-Dev at python.org > https://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: > https://mail.python.org/mailman/options/python-dev/guido%40python.org > -- --Guido van Rossum (python.org/~guido) -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20141103/96c612e7/attachment.html>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4