I have lots of code of this kind
>>> e = d1.copy(); e.update(d2)
so the addition operator would be most welcome. I congratulate to this PEP!
In fact, I would have wished, and in early programming had assumed, the `update` method would return the updated array rather than modifying the existing one, more along the philosophy of debugging-friendly functional programming. (Some NumPy methods are also not quite consistently semantically transparent to me in that regard.) An `dict.updated` method would have been a good explicit alternative, but with just the extra `d` at the end may be too error-prone.
Yes, overloading can be confusing unless one realises that it is just a short form of calling the `__add__` method in this case. It is non-commutative for this operation, which can be a source of confusion for novices (same as multiplication for matrices, operators in QM, quaternions, ...) and, more trivially, similar to addition of ordered structures such as strings and lists whether not being commutative is obvious; just for unordered structures it is less obvious at first; dictionaries are different again.
over all: +1