On Mon, 3 Nov 2014 09:05:43 -0800 Guido van Rossum <gu...@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@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com