Home  >  Article  >  Backend Development  >  How to Unindent Multiline Strings in Python Without Losing Readability?

How to Unindent Multiline Strings in Python Without Losing Readability?

DDD
DDDOriginal
2024-10-24 12:16:29964browse

How to Unindent Multiline Strings in Python Without Losing Readability?

Removing Indentation from Multiline Strings in Python

Multiline strings often need to be indented in Python to improve readability and organization. However, when embedded within functions, this indentation becomes excessive. A common question arises: "Does Python have a built-in function for removing this global indentation?"

Solution:

While Python doesn't have a dedicated built-in function for unindenting multiline strings, the textwrap.dedent() function from the standard library serves this purpose effectively.

This function takes a multiline string as input and strips whitespace from all lines of text that exceeds the common indentation level. It assumes that the first line is not indented and removes the preceding whitespace from the remaining lines.

Example:

Let's consider the following multiline string with global 4-space indentation:

s = """
    Controller = require 'controller'

    class foo
        view: 'baz'
        class: 'bar'

        constructor: ->
            Controller.mix @
"""

Using textwrap.dedent(), we can remove the global indentation:

import textwrap
unindented_s = textwrap.dedent(s)
print(unindented_s)

Output:

Controller = require 'controller'

class foo
    view: 'baz'
    class: 'bar'

    constructor: ->
        Controller.mix @

As illustrated, the global indentation has been effectively removed, making the string suitable for use within functions or other contexts where indentation is not desired.

The above is the detailed content of How to Unindent Multiline Strings in Python Without Losing Readability?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn