[Python-ideas] PEP 505: None-aware operators
Stephan Houben
stephanh42 at gmail.com
Tue Jul 31 15:06:06 EDT 2018
Op di 31 jul. 2018 20:49 schreef Jonathan Fine <jfine2358 at gmail.com>:
> David Mertz wrote:
>
> > `spam?.eggs?.cheese?.aardvark` is NOT redundant for
> > `spam?.eggs.cheese.aardvark`. The two expressions simply do different
> > things [...]
>
> I agree, assuming ?. is a binary operator.
It isn't.
Given this, in Python (+
> PEP 505) one can write
>
> tmp = spam ?. eggs
> val1 = tmp ?. cheese ?. aardvark # For spam?.eggs?.cheese?.aardvark
> val2 = tmp . cheese . aardvark # For spam?.eggs.cheese.aardvark
>
Nope, the introduction of the tmp variable changed the semantics. It isn't
a "chain" anymore so it breaks shortcutting.
To be honest I didn't get this either until it was pointed out to me
>
> No special knowledge of PEP 505 is needed. If val1 is always equal to
> val2, then the dot and None-dot operators must be the same. From the
> assumptions, this is something that can be mathematically proved.
>
And false.
> By the way, there's a widely used programming language in which
> val = a.method()
> and
> tmp = a.method
> val = tmp()
> are not always equivalent. Can you guess which language it is?
Javascript.
I suppose in the same way as x+2 and x*2 are " not always" equivalent.
Stephan
> The answer is in:
>
> https://www.slideshare.net/jonathanfine/javascript-the-easiest-quiz-in-the-world-ever
> (question 6: Dot binds).
>
> I'll now go back to following the example of Steve Bower and Raymond
> Hettinger, which in my words is to wait until we have proper cover for
> the BDFL's vacation.
>
> --
> Jonathan
> _______________________________________________
> 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/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180731/699a2f27/attachment-0001.html>
More information about the Python-ideas
mailing list