On 2018-08-02 20:03, Eric Fahlgren wrote:
From the PEP:
>
From email/generator.py (and importantly note that there is no way to
substitute or for ?? in this situation):
>
mangle_from_ = True if policy is None else policy.mangle_from_
> After updating:
>
mangle_from_ =
policy?.mangle_from_ ?? True
I cannot see how these are equivalent, and cannot understand what the
cryptic comment means.
If there's a policy, use policy.mangle_from_.
If there's no policy, default to True.
The comment is a reminder that you can't use 'or' instead of '??'
because 'policy.mangle_from_' could be False and you don't want it to
default to True in that case.
>>> policy.mangle_from_ = None
>>>
True if policy is None else policy.mangle_from_
None
>>>
policy?.mangle_from_ ?? True
True (??? since lhs is None?)
No, it's not 'policy.mangle_from_' that could be None, it's 'policy'
that could be None (i.e. there's no policy).
_______________________________________________
Python-ideas mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/