[Python-ideas] Multi-line strings that respect indentation
Eric Smith
eric at trueblade.com
Sat Nov 6 00:55:56 CET 2010
On 11/5/10 7:48 PM, Carl M. Johnson wrote:
> On Fri, Nov 5, 2010 at 10:37 AM, Terry Reedy<tjreedy at udel.edu> wrote:
>> On 11/5/2010 10:45 AM, Nick Coghlan wrote:
>>
>>> I do use the textwrap.dedent workaround myself, but I think it is
>>> sufficiently flawed for a proper fix to be worth considering:
>>>
>>> 1. It doesn't work for docstrings (as Tal pointed out)
>>
>> This does:
>>
>> def f(x):
>> "Am I a docstring\n"\
>> "even though I start in pieces?\n"\
>> "Oh, x is a dummy param\n"
>> pass
>> print(f.__doc__)
>>
>> # prints 3 lines, but not without '\' escape at line ends
>
> Can the parser be changed to do automagic joining on that the same way
> that it auto joins ("a"
>
> "b")? I can't imagine any scenario where anyone would rely on starting
> the line after a docstring with a string literal, since the only
> plausible run time effect it might have would be to intern some
> strings for later. Even "string".method() wouldn't have any effect
> without something like x = in front of.
>>> def f(x):
... ("Am I a docstring\n"
... "even though I start in pieces?\n"
... "Oh, x is a dummy param\n")
... pass
...
>>> print(f.__doc__)
Am I a docstring
even though I start in pieces?
Oh, x is a dummy param
>>>
--
Eric.
More information about the Python-ideas
mailing list