Issue 36628: Enhancement: i-Strings - Python tracker (original) (raw)

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