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

Jonathan Fine jfine2358 at gmail.com
Tue Jul 31 14:48:50 EDT 2018


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.  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

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.

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?

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


More information about the Python-ideas mailing list