On 3/21/19 6:46 PM, Steven D'Aprano wrote:

Antoine and Serhiy seem to worry that there are existing uses of + which
are currently easy to understand but will become less so if dict.__add__
is added. I respect that worry, even if I doubt that they are correct.

If someone can demonstrate that their fear is well-founded, that would
be an excellent counter-argument to the PEP's proposal to use +.

https://docs.python.org/3.8/library/collections.html has some
examples using collections.Counter, which is clearly described
as being a subclass of dict.  Amongst the examples:

    c + d  # add two counters together:  c[x] + d[x]

That's the + operator operating on two dicts (don't make me
quote the Liskov Substitution Principle), but doing something
really different than the base operator.

So if I know that c and d (or worse, that one of them) is a
dict, then interpreting c + d becomes much more interesting,
but arguably no worse than c.update(d).  Yes, it's "just"
polymorphism, but IMO it violates the Principle of Least
Surprise.

My apologies if this is covered elsewhere in this thread, or
it doesn't meet the bar Steven set.
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to