Problem: multiline strings are a pain to represent (other than of-course in docstrings), representing a multiline string inside a function looks something like this -
def foo():
# some code
...
...
# some code
text = """abc meta alpha chronos
dudes uptomes this text
is nonsense"""
return somethingwith(text)
or
def foo():
# some code
...
...
# some code
text = "\n".join(["abc meta alpha chronos",
"dudes uptomes this text",
"is nonsense"])
return somethingwith(text)
an enhancement would be -
def foo():
# some code
...
...
# some code
text = i"""
abc meta alpha chronos
dudes uptomes this text
is nonsense
"""
return somethingwith(text)
i.e. all initial spaces are not considered as a part of the string in each ine
for example while throwing an exception -
def foo(bad_param):
...
try:
some_function_on(bad_param)
except someException:
throw(fi"""
you cant do that because, and I'm gonna explain
this in a paragraph of text with this {variable}
because it explains things more clearly, also
here is the {bad_param}
""")
...
which is far neater than -
def foo(bad_param):
...
try:
some_function_on(bad_param)
except someException:
throw(f"""you cant do that because, and I'm gonna explain
this in a paragraph of text with this {variable}
because it explains things more clearly, also
here is the {bad_param}""")
...
pros:
- represented code is closer to output text
- implementation should not be too hard
|