[Python-ideas] Idea for new multi-line triple quote literal
Markus Unterwaditzer
markus at unterwaditzer.net
Mon Jul 1 07:50:30 CEST 2013
I think this could cause problems with multi-line strings that contain
additional indentation:
def get_yaml():
x = """
foo: Bar
user:
fname: Hans
lname: Gans
""".dedent()
return x
While i don't see many arguments why somebody would want to store configuration
files inside a string, i am sure many beginners who try to use this method will
be surprised by its behavior.
-- Markus
On Mon, Jul 01, 2013 at 11:47:29AM +1000, Nick Coghlan wrote:
> On 1 July 2013 11:09, Steven D'Aprano <steve at pearwood.info> wrote:
> > but in either case, I think the choice of --- as delimiter is ugly and
> > arbitrary, and very likely is ambiguous (currently, x = ---1 is legal code).
> > Similar suggestions to this have been made many times before, you should
> > search the archives:
> >
> > http://mail.python.org/mailman/listinfo/python-ideas
>
> I'm still partial to the idea of offering textwrap.indent() and
> textwrap.dedent() as string methods.
>
> 1. You could add a ".dedent()" at the end of a triple quoted string
> for this kind of problem. For a lot of code, the runtime cost isn't an
> issue.
> 2. A JIT would definitely be able to avoid recalculating the result every time
> 3. Even CPython may eventually gain constant folding for that kind of
> method applied directly to a string literal
> 4. I dedent and indent long strings more often than I capitalize,
> center, tab expand, or perform various other operations which already
> grace the str type as methods.
>
> Cheers,
> Nick.
>
> --
> Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> http://mail.python.org/mailman/listinfo/python-ideas
More information about the Python-ideas
mailing list