<div dir="ltr"><div class="gmail_extra">Just to cut this thread short, I'm going to reject PEP 505, because ? is just too ugly to add to Python IMO. Sorry.<br><br></div><div class="gmail_extra">I commend Mark for his clean write-up, without being distracted, giving some good use cases. I also like that he focused on a minimal addition to the language and didn't get distracted by hyper-generalizations. <br><br>I also like that he left out f?(...) -- the use case is much weaker; usually it's the object whose method you're calling that might be None, as in title?.upper().<br><br></div><div class="gmail_extra">Some nits for the PEP:<br><br></div><div class="gmail_extra">- I don't think it ever gives the priority for the ?? operator. What would "a ?? b or c" mean?<br></div><div class="gmail_extra">- You don't explain why it's x ?? y but x ?= y. I would have expected either x ? y or x ??= y.<br></div><div class="gmail_extra">- You don't explain or show how far ?. reaches; I assume x?y.z is equivalent to None if x is None else x.y.z, so you don't have to write x?.y?.z just to handle x.y.z if x is None.<br></div><div class="gmail_extra">- The specification section is empty.<br></div><div class="gmail_extra"><br>-- <br><div class="gmail_signature">--Guido van Rossum (<a href="http://python.org/~guido" target="_blank">python.org/~guido</a>)</div>
</div></div>