Here's our current proposal for docs. Is there anything you'd like to add?
https://github.com/python/cpython/pull/18659/files

On Wed, Feb 26, 2020 at 8:12 AM David Mertz <me...@gnosis.cx> wrote:

> I think the "if unset" behavior is well handled by collections.ChainMap.
> But I do think that fact should be prominent in any documentation of the
> new dict Union operator.
>
> On Wed, Feb 26, 2020, 11:06 AM Guido van Rossum <gu...@python.org> wrote:
>
>> 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/
>>
>

-- 
--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/S2OW7WOAXXT2YI5P6EOP6CMBRLQME3K2/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to