[Python-ideas] PEP 505 (None coalescing operators) thoughts
Carl Meyer
carl at oddbird.net
Mon Sep 28 22:00:47 CEST 2015
On 09/28/2015 01:53 PM, Guido van Rossum wrote:
> On Mon, Sep 28, 2015 at 12:43 PM, Carl Meyer <carl at oddbird.net
> Or put differently, that whereas these two are trivially equivalent (the
> definition of left-to-right binding within a precedence class):
>
> foo.bar.baz
> (foo.bar).baz
>
> these two are not equivalent:
>
> foo?.bar.baz
> (foo?.bar).baz
>
>
> Right.
>
>
> I'm having trouble coming up with a parallel example where the existing
> short-circuit operators break "extractibility" of a sub-expression like
> that.
>
>
> Why is that an interesting property?
Because breaking up an overly-complex expression into smaller
expressions by means of extracting sub-expressions into temporary
variables is a common programming task (in my experience anyway --
especially when trying to decipher some long-gone programmer's
overly-complex code), and it's usually one that can be handled pretty
mechanically according to precedence rules, without having to consider
that some operators might have action-at-a-distance beyond their precedence.
> I guess this is because the proposed short-circuiting still "breaks out
> of the precedence order" in a way that the existing short-circuiting
> operators don't. Both member access and indexing are within the same
> left-to-right binding precedence class, but the new operators would have
> a short-circuit effect that swallows operations beyond where normal
> left-to-right binding would suggest their effect should reach.
>
> Are there existing examples of behavior like this in Python that I'm
> missing?
>
>
> I don't know, but I think you shouldn't worry about this.
I think it's kind of odd, but if nobody else is worried about it, I
won't worry about it either :-)
Carl
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20150928/87930f67/attachment.sig>
More information about the Python-ideas
mailing list