[Python-ideas] Multi-line strings that respect indentation

spir denis.spir at gmail.com
Fri Nov 5 07:29:24 CET 2010


On Thu, 4 Nov 2010 20:21:37 -0400
Daniel da Silva <ddasilva at umd.edu> wrote:

> On several occasions I have run into code that will do something like the
> following with a multiline string:
> 
> 
> def some_func():
> >     x, y = process_something()
> >
> >     val = """
> > <xml>
> >   <myThing>
> >     <val>%s</val>
> >     <otherVal>%s</otherVal>
> >   </myThing>
> >
> </xml>
> > """ % (x, y)
> >
> >     return val
> >
> 
> To me, this is rather ugly because it messes up the indentation of
> some_func(). Suppose we could have a multiline string, that when started on
> a line indented four spaces, ignores the first four spaces on each line of
> the literal when creating the actual string?
> 
> In this example, I will use four quotes to start such a string. I think the
> syntax for this could vary though. It would be something like this:
> 
> def some_func():
> >     x, y = process_something()
> >
> >     val = """"
> >     <xml>
> >       <myThing>
> >         <val>%s</val>
> >         <otherVal>%s</otherVal>
> >       </myThing>
> >     </xml>
> >     """" % (x, y)
> >
> >     return val
> >
> 
> That way, the indentation in the function would be preserved, making
> everything easy to scan, and the indentation in the output would not suffer.
> 
> 
> What do you all think?

I'm +++ for this. Even more in python because one has no choice about indentation. But I posted the same proposal some time ago (together with a note that there is no need for """...""" around multiline strings), and it had no apparent success.


Denis
-- -- -- -- -- -- --
vit esse estrany ☣

spir.wikidot.com




More information about the Python-ideas mailing list