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

Reply via email to