
Most of the discussion so far has been focused on (?.). Tbh though, I'm more interested in (??) and (??=). Just reading through code, I constantly notice boilerplate like this which could easily be substituted. variable = some_function(...) if variable is None: variable = [] # some default value # a bit better with an assignment expression if (variable := some_function(...)) is None: variable = [] # or worse with an if expression variable = some_function(...) if some_function(...) else [] # also possible with :=, but not much better variable = x if (x := some_function(...)) else [] # using the coalesce operator would be much more readable IMO variable = some_function(...) ?? [] If (?.) and (?[) are rejected / deferred, maybe there is interest in seeing at least (??) and (??=) through?