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