[Python-ideas] Null coalescing operators

Mark E. Haase mehaase at gmail.com
Mon Sep 21 17:58:22 CEST 2015

PEP-505 isn't anywhere close to being finished. I only submitted the draft
because somebody off list asked me to send a draft so I could get a PEP
number assigned. So I literally sent him what I had open in my text editor,
which was just a few minutes of brain dumping and had several mistakes
(grammatical and technical).

If there's absolutely no point in continuing to work on it, I'll drop it.
But from the outset, I thought the plan was to present this in its best
light (and similar to the ternary operator PEP, offer several alternatives)
if for no other reason than to have a good record of the reasoning for
rejecting it.

I'm sorry if I misunderstood the PEP process; I would have kept it to
myself longer if I knew the first submission was going to be reviewed
critically. I thought this e-mail chain was more of an open discussion on
the general idea, not specifically a referendum on the PEP itself.

On Mon, Sep 21, 2015 at 11:40 AM, Guido van Rossum <guido at python.org> wrote:

> Just to cut this thread short, I'm going to reject PEP 505, because ? is
> just too ugly to add to Python IMO. Sorry.
> 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.
> 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().
> Some nits for the PEP:
> - I don't think it ever gives the priority for the ?? operator. What would
> "a ?? b or c" mean?
> - You don't explain why it's x ?? y but x ?= y. I would have expected
> either x ? y or x ??= y.
> - 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.
> - The specification section is empty.
> --
> --Guido van Rossum (python.org/~guido)

Mark E. Haase
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20150921/e75ba4e5/attachment.html>

More information about the Python-ideas mailing list