On Wed, Feb 26, 2020 at 7:43 AM Claudio Jolowicz <cjolow...@gmail.com>
wrote:

> In my experience, the expression `value |= other` is a common idiom across
> programming languages to provide a default for `value` if it is "unset".
> For a
> container-type, I would expect this operation, informally spoken, to be
> applied
> element-wise. In other words, the resulting dict would have the union of
> keys,
> with values supplied from `other` only if keys are missing in `value`.
>
> This would allow users to provide defaults in a dictionary of settings,
> like
> this:
>
>     settings |= defaults
>
> As this usage generalizes a (perceived) common idiom, I would expect
> people to
> get bitten by this.
>

Interesting. Can you point to specific examples of this? In what other
languages have you seen this? (Not that it would make us change PEP 584,
but if this appears common we could probably warn about it prominently in
docs and tutorials.)

The pattern I'm familiar with for applying defaults always starts with the
defaults and then adds the local overrides, so the PEP 584 behavior fits
perfectly. (Probably because in Python before PEP 584 the most common
operation is dict.update(), which has the same semantics.)

-- 
--Guido van Rossum (python.org/~guido)
*Pronouns: he/him **(why is my pronoun here?)*
<http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-change-the-world/>
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/JHXN342STNGSPX3NRAEXRS6JOXH5BCNU/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to