Split statements across multiple lines in Python code

David Y.
jump to solution

The Problem

When writing Python code, I sometimes need to split statements or expressions across multiple lines for readability. Considering that Python uses meaningful whitespace, how can I do this while preserving the meaning of the code? For example, I would like to turn this code:

sum = 1 + 2 + 3 + 4 + 5

Into this:

sum = 1 + 2 + 3
        + 4 + 5

The Solution

Python allows code within parentheses (()), brackets ([]) or braces ({}) to be written across multiple lines with arbitrary indentation. For example:

sum = (1 + 2 + 3
         + 4 + 5)

This also applies to function calls and expressions:

if (initialized == True and
    paused == False):
    run_job(1, False,
            "Hello world!")

List definitions, which use brackets, and dictionary definitions, which use braces, can be written across multiple lines in the same way and for the same reason:

products = ["Apples",
            "Oranges"]

product_prices = {"Apples": 1,
                  "Oranges": 2}

Per PEP-008, using parenthesis, brackets, and braces is the preferred way of continuing long lines. An alternative method is to use a single backslash (\):

sum = 1 + 2 + 3 \
        + 4 + 5

if initialized == True and \
   paused == False:
    run_job(1, False, "Hello world!")

Considered "not bad" by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world's best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.

Sentry