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).