[Python-Dev] Re: PEP 505 (None-aware operators) for Python 3.11
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? ___ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/7DED2THUJJPBS556YQ4YHH3TN6WGH2UH/ Code of Conduct: http://python.org/psf/codeofconduct/
[Python-Dev] Re: PEP 505 (None-aware operators) for Python 3.11
> Bear in mind that these last ones are exactly equivalent to the "or" > operator, as they'll use the default if you have any falsy value. > variable = some_function(...) or [] Isn't that in itself a good argument in favor of (??) ? By missing to add 'is None', I would have already added a subtle bug that could be quite difficult to find. (??) could prevent that while also being more readable. > I'm actually more interested in a better idiom for non-constant > function default arguments, since that's the place where this kind of > thing often comes up. A nice ??= operator might help if your default > is None, but if you then change the default to be object(), you can't > use ??= any more. [...] True, but from my experience 'None' is just by far the most common default. Why not improve how we handle it? ___ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/VDMN5ZHPMMBLCHVM63RROZJYAIII74A3/ Code of Conduct: http://python.org/psf/codeofconduct/