[Python-ideas] PEP 505: None-aware operators

Judah Levy judah.j.levy at gmail.com
Thu Jul 19 08:59:42 EDT 2018


On Thu, Jul 19, 2018 at 8:47 AM Rhodri James <rhodri at kynesim.co.uk> wrote:

> On 19/07/18 09:33, Antoine Pitrou wrote:
> > There is a use case I sympathize with: the argument-is-None case.  For
> > that I would suggest a simpler form:  "A else B" which would evaluate
> > to A if A is not None, otherwise to B (parentheses may be mandatory).
> >
> > So e.g. one of the examples would read:
> >
> >       def insort_right(a, x, lo=0, hi=None):
> >           # ...
> >           hi = hi else len(a)
> >           # ...
>
> Much as I would like a keyword, "else" is the wrong one.  It implies we
> are dealing with truthiness, which we aren't, and lays a subtle semantic
> trap as a consequence.
>
> If anyone can think of a good word for "if it isn't None, otherwise",
> I'd be all for it :-)
>
> --
> Rhodri James *-* Kynesim Ltd
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>

I think that it may look better with the order switched and the word
unless, as in

    def insort_right(a, x, lo=0 hi=None):
        # ...
        hi = len(a) unless hi
        # ...

Unfortunately, this does maybe feel more like checking for truthiness than
non-Null value
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180719/45012e0b/attachment.html>


More information about the Python-ideas mailing list