On 05/17/2013 02:49 AM, Steven D'Aprano wrote:<br>> On 17/05/13 04:28, Ron Adam wrote:<br>> <br>>> I think the line continuation '\' character would also make a good<br>>> explicit string literal concatenation character.  It's already<br>>> limited to only work across sequential lines as well.<br>> <br>> Concatenating strings on the same line is a legitimate thing to do,<br>> because you can mix different quoting types. In my opinion, there's<br>> no really clean way to build string literals containing multiple<br>> types of quotation marks, but implicit concatenation works and is<br>> useful. Here's a contrived example:<br>> <br>> <br>> s = "'Aren't you supposed to be " '"working"?' "', he asked with a<br>> wink."<br><br>And here's a non-contrived one (almost) verbatim from <br>working code:<br><br> pattern = '[^\uFF1B\u30FB\u3001' r'+:=.,\/\[\]\t\r\n]+' '[\#\uFF03]+'<br><br>In Python 2 this had been:<br><br> pattern = ur'[^\uFF1B\u30FB\u3001+:=.,\/\[\]\t\r\n]+[\#\uFF03]+'<br><br>but was changed to first form above due to Python 3's <br>removal of lexical evaluation of \u literals in raw <br>strings (see http://bugs.python.org/issue14973).<br><br>Obviously the concatenation could have been done with<br>the + operator but I felt the given form was clearer<br>than trying to visually get whether any particular "+" <br>was inside or outside of a string.  There are other <br>more complex regex with more +'s and my preference is <br>to adopt a particular form I can use for most/all such <br>rather than to tweak forms based on a particular <br>string's content.<br><br>I am assuming this discussion is regarding a possible <br>Python 4 feature -- adjacent string literal concatenation <br>has been documented behavior of Python going back to at<br>least version 1.4.0 (the earliest doc available on <br>python.org):<br><br>  "2.4.1.1 String literal concatenation<br>  Multiple adjacent string literals (delimited by<br>  whitespace), possibly using different quoting<br>  conventions, are allowed, and their meaning is<br>  the same as their concatenation..."<br><br>I also have been using adjacent string literal <br>concatenation in the "help" parameters of argparse <br>calls as standard practice for many years, albeit <br>on separate lines.<br><br>