[Python-ideas] Implicit string literal concatenation considered harmful?

Guido van Rossum guido at python.org
Sat May 11 01:57:02 CEST 2013


Well, I think if you can live with

x = ('foo\n'
     'bar\n'
     'baz\n'
    )

I think you could live with

x = ('foo\n' +
     'bar\n' +
     'baz\n'
    )

as well... (Extra points if you figure out how to have a + on the last line
too. :-)

So, as I said, it's not the convenience that matters, it's how much it is
in use. :-(

--Guido

On Fri, May 10, 2013 at 4:51 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:
>
> On 11 May 2013 04:50, "Guido van Rossum" <guido at python.org> wrote:
>>
>> I just spent a few minutes staring at a bug caused by a missing comma
>> -- I got a mysterious argument count error because instead of foo('a',
>> 'b') I had written foo('a' 'b').
>>
>> This is a fairly common mistake, and IIRC at Google we even had a lint
>> rule against this (there was also a Python dialect used for some
>> specific purpose where this was explicitly forbidden).
>>
>> Now, with modern compiler technology, we can (and in fact do) evaluate
>> compile-time string literal concatenation with the '+' operator, so
>> there's really no reason to support 'a' 'b' any more. (The reason was
>> always rather flimsy; I copied it from C but the reason why it's
>> needed there doesn't really apply to Python, as it is mostly useful
>> inside macros.)
>>
>> Would it be reasonable to start deprecating this and eventually remove
>> it from the language?
>
> I could live with it if we get "dedent()" as a string method. I'd be even
> happier if constant folding was extended to platform independent method
> calls on literals, but I don't believe there's a sane way to maintain the
> "platform independent" constraint.
>
> OTOH, it's almost on the scale of "remove string mod formatting". Shipping
> at least a basic linting tool in the stdlib would probably be almost as
> effective and substantially less disruptive. lib2to3 should provide some
> decent infrastructure for that.
>
> Cheers,
> Nick.
>
>>
>> --
>> --Guido van Rossum (python.org/~guido)
>> _______________________________________________
>> Python-ideas mailing list
>> Python-ideas at python.org
>> http://mail.python.org/mailman/listinfo/python-ideas



-- 
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20130510/f4e69ed4/attachment.html>


More information about the Python-ideas mailing list