[Python-ideas] A better (simpler) approach to PEP 505
Grégory Lielens
gregory.lielens at gmail.com
Wed Jul 25 05:02:01 EDT 2018
On Wednesday, July 25, 2018 at 10:33:37 AM UTC+2, Brice Parent wrote:
>
> I think the use case here is not really the simple 'is None' + 'is not
> None'.
>
Sure, that's why I also proposed to manually check a non-too-small samples
of the None-testing occurences found by Guido .
You did it on your sample, and your findings findings are what I roughly
expected.
I didn't do it. Well, not true, I sort of did it ;-), but I was lazy so I
did not look enough to be representative, it was only a quick look at a
very few instances:
I did not encounter deep hierarchy descent (I think the few we have use
hasattr), but I found a couple where the proposed syntax would help but
just a little: it's short and would use single ?? or ??=
By far, the most common case was using None as a marker for "we need a
default sensible in the context", most of the time for a default argument.
?? and ??= indeed makes things slightly shorter and usually slightly
clearer, but the improvement is very small as things are short and clear
already. That's also why I was interested in the default argument
delegating: In quite a few cases, the None default was because the real
default was in a subfunction, and a way to delegate would be much more
useful there.
if the case is just to replace one None value by something else, it's
> not really an improvement as we just save one short line, and once the
> new syntax is accepted and we're used to it, both solution are quite
> explicit with what they do, so I'd prefer the status quo over a second
> way of doing the same thing.
>
Yep, ditto. That's why I am -1 on ?? and ??= : They are useful, but not
enough imho
It gets interesting in json-like cases, when we traverse a deep tree in
> which we might encounter None at multiple levels.
>
I hoped the PEP writers would submit such reallife examples, I think that's
the motivation behind the PEP. But either I missed it, or they didn't show
it yet.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180725/8558860f/attachment-0001.html>
More information about the Python-ideas
mailing list