Можно ли разбить длинную строку на несколько строк в Python

Как и в C, вы можете разбить длинную строку на несколько коротких. Но в Python, если я сделаю это, возникнет ошибка отступа... Возможно ли это?

Решение

Из PEP 8 - Руководство по стилю для кода Python:

Предпочтительным способом обертывания длинных строк является использование в Python' подразумеваемой строки продолжение внутри круглых скобок, скобок и скобок. При необходимости вы можно добавить дополнительную пару круглых скобок вокруг выражения, но иногда использование обратной косой черты выглядит лучше. Убедитесь, что отступ продолженной строки соответствующим образом.

Пример неявного продолжения строки:

a = some_function(
    '1' + '2' + '3' - '4')

По теме разрывов строк вокруг двоичного оператора далее говорится:-

В течение десятилетий рекомендованным стилем был перевод строки после двоичных операторов. Но это может ухудшить читаемость в двух отношениях: операторы обычно разбросаны по разным колонкам экрана, и каждый оператор удаляется от своего операнда на предыдущую строку.

В коде Python допустимо делать паузу до или после двоичного оператора, если это соглашение согласовано на локальном уровне. Для нового кода рекомендуется стиль Knuth'a (перенос строки перед оператором).

Пример явного продолжения строки:

a = '1'   \
    + '2' \
    + '3' \
    - '4'
Комментарии (3)

Есть больше чем один способ сделать это.

1). Пространное заявление:

>>> def print_something():
         print 'This is a really long line,', \
               'but we can make it across multiple lines.'

2). Используя скобки:

>>> def print_something():
        print ('Wow, this also works?',
               'I never knew!')

3). Используя снова`:

>>> x = 10
>>> if x == 10 or x > 0 or \
       x < 100:
       print 'True'

Цитирую PEP8:

предпочтительный способ упаковки долго линии является использование Python'ы подразумеваемых В продолжение строки внутри скобок, скобки и брекеты. При необходимости вы можете добавить дополнительную пару скобок вокруг выражения, но иногда используют обратный слеш выглядит лучше. Убедитесь, что отступ продолжение линии надлежащим образом. Предпочтительное место для отдыха на бинарных оператор после оператор, а не перед ним.

Комментарии (5)

Если вы хотите назначить длинным ул. переменной, вы можете сделать это, как показано ниже:

net_weights_pathname = (
    '/home/acgtyrant/BigDatas/'
    'model_configs/lenet_iter_10000.caffemodel')

Не добавляйте каких-либо запятая, либо вы получите Кортеж, который содержит много сообщений!

Комментарии (3)

Это работает и в Python:

>>> 1+\
      2+\
3
6
>>> (1+
          2+
 3)
6
Комментарии (0)

При попытке войти сплошным текстом (скажем, запрос) не ставить запятые в конце строки, иначе вы получите список строк, а не одну длинную строку:

queryText= "SELECT * FROM TABLE1 AS T1"\
"JOIN TABLE2 AS T2 ON T1.SOMETHING = T2.SOMETHING"\
"JOIN TABLE3 AS T3 ON T3.SOMETHING = T2.SOMETHING"\
"WHERE SOMETHING BETWEEN  AND "\
"ORDER BY WHATEVERS DESC"

как-то вот так.

Есть комментарий, как это у acgtyrant`, извини, я'т вижу, что. :/

Комментарии (0)

Насколько я знаю, это можно сделать. Python имеет неявное продолжение строки (внутри круглых скобок, скобок и строк) для строк с тройными кавычками ("""как это"""""), и отступ продолжающих строк не важен. Для получения дополнительной информации вы можете прочитать эту статью о лексическом анализе с сайта python.org.

Комментарии (1)

Обзоры DB код выглядит проще на глаз в несколько строк, заключенных по паре-тройке цитат:

SQL = """SELECT
            id, 
            fld_1, 
            fld_2, 
            fld_3, 
            ...... 
         FROM some_tbl"""

чем один гигантский длинной линии:

SQL = "SELECT id, fld_1, fld_2, fld_3, .................................... FROM some_tbl"
Комментарии (2)