
Hi Barry, On 09/29/2015 11:35 AM, Barry Warsaw wrote:
On Sep 28, 2015, at 03:04 PM, Carl Meyer wrote:
But even if they are rejected, I think a simple `??` or `or?` (or however it's spelled) operator to reduce the repetition of "x if x is not None else y" is worth consideration on its own merits. This operator is entirely unambiguous, and I think would be useful and frequently used, whether or not ?. and ?[ are added along with it.
But why is it an improvement? The ternary operator is entirely obvious and readable, and at least in my experience, is rare enough that the repetition doesn't hurt my fingers that much. It seems like such a radical, ugly new syntax unjustified by the frequency of use and readability improvement.
I find the repetition irritating enough that I'm tempted to use 'or' instead, even when I know it's not technically the semantics I want. (In most cases, the difference probably doesn't matter, and when it actually does, I probably know that and write out the full ternary.) And I find plenty of other code using `or` when it ought to be using a ternary with `is None` (but again, most of the time in practice it's fine.) Most of this code is in defaults-handling; there've been plenty of examples in the thread. I find the explicit if-block painful if there's more than one argument with a None-default to be handled; YMMV. I agree that I don't love any of the syntax suggestions so far, and without a less ugly syntax, it's probably dead. If it was in the language, I'd use it, but I don't feel strongly about it. Carl