[Python-ideas] PEP 505 (None coalescing operators) thoughts
Guido van Rossum
guido at python.org
Mon Sep 28 22:24:50 CEST 2015
On Mon, Sep 28, 2015 at 1:15 PM, Donald Stufft <donald at stufft.io> wrote:
> The ? Modifying additional attribute accesses beyond just the immediate
> one bothers me too and feels more ruby than python to me.
>
Really? Have you thought about it?
Suppose I have an object post which may be None or something with a tag
attribute which should be a string. And suppose I want to get the
lowercased tag, if the object exists, else None.
This seems a perfect use case for writing post?.tag.lower() -- this
signifies that post may be None but if it exists, post.tag is not expected
to be None. So basically I want the equivalent of (post.tag.lower() if post
is not None else None).
But if post?.tag.lower() were interpreted strictly as (post?.tag).lower(),
then I would have to write post?.tag?.lower?(), which is an abomination.
OTOH if post?.tag.lower() automatically meant post?.tag?.lower?() then I
would silently get no error when post exists but post.tag is None (which in
this example is an error).
--
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20150928/34a88fc2/attachment.html>
More information about the Python-ideas
mailing list