Daniel da Silva 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?
+1 since this would mean Python would also dedent multi-line doc-strings automatically. I really have having doc-strings indented according to their indentation in the code.
- Tal