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/

Reply via email to