[Python-ideas] Implicit String Concatenation

Ivan Vilata i Balaguer ivan at selidor.net
Fri Apr 13 09:43:01 CEST 2007


Greg Ewing (el 2007-04-13 a les 11:27:44 +1200) va dir::

> For Py3k, how about changing the definition of triple
> quoted strings so that indentation is stripped up
> to the level of the line where the string began?
> 
> In other words, apply an implicit dedent() to it
> in the parser.

I'd rather make it explicit by using some string prefix a la 'r' or 'u',
'i', for instance:

>>> normal_string = """
...   foo
...     bar \
...   baz
... """
>>> print repr(normal_string)
'\n  foo\n    bar   baz\n'
>>> indented_string1 = i"""
...   foo
...     bar \
...   baz
... """
>>> print repr(indented_string1)
'foo\n  bar baz\n'
>>> indented_string2 = i"""foo
...     bar \
...   baz
... """
>>> print repr(indented_string2)
'foo\n    bar   baz\n'

As you see, strings marked with 'i' are dedented to the outer non-blank
character, and their first empty line is ignored.  I haven't meditated
this much, so some questions come to my mind:

* Is it really OK to remove the first empty line?
* How would this interact with an 'r' prefix?  Should initial space be
  kept then?  (This would effectively disable 'i'.)
* Should leading space in a line after a continuation backslash really
  be removed?

Of course the proposal can be made a lot better with some insight.  What
do you think of the basic idea?

::

  Ivan Vilata i Balaguer   @ Welcome to the European Banana Republic! @
  http://www.selidor.net/  @     http://www.nosoftwarepatents.com/    @
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 307 bytes
Desc: Digital signature
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20070413/fa564080/attachment.pgp>


More information about the Python-ideas mailing list