Подтвердить что ты не робот

Разбить линию python на несколько строк?

В С++ мне нравится разбивать мои строки кода, если они слишком длинны, или если оператор if, если в нем много проверок.

if (x == 10 && y < 20 && name == "hi" && obj1 != null) 
    // Do things 

// vs

if (x == 10
    && y < 20
    && name == "hi"
    && obj1 != null)
{
    // Do things
}

AddAndSpawnParticleSystem(inParticleEffectName, inEffectIDHash, overrideParticleSystems, mAppliedEffects[inEffectIDHash], inTagNameHash);
// vs
AddAndSpawnParticleSystem(inParticleEffectName, inEffectIDHash, overrideParticleSystems, 
    mAppliedEffects[inEffectIDHash], inTagNameHash);

В Python блоки кода определяются вкладками, а не ";" в конце строки

if number > 5 and number < 15:
    print "1"

Возможны ли множественные линии в python? как...

if number > 5 
and number < 15:
    print "1"

Я не думаю, что это возможно, но было бы круто!

4b9b3361

Ответ 1

Руководство по стилю говорит:

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

Способ 1: Использование круглых скобок

if (number > 5 and
        number < 15):
    print "1"

Способ 2: использование обратной косой черты

if number > 5 and \
number < 15:
    print "1"

Способ 3: использование обратной косой черты + отступ для лучшей читаемости

if number > 5 and \
        number < 15:
    print "1"

Ответ 2

Вы можете разбить выражение на несколько строк, если вы окружаете его круглыми скобками:

if (x == 10
    and y < 20
    and name == "hi"
    and obj1 is not None):
    # do something

То же самое относится к скобкам или фигурным скобкам, используемым для создания списка или словаря:

mylist = [1, 2, 3, 4,
          5, 6, 7, 8]

mydict = {1: "a", 2: "b",
          3: "c", 4: "d"}

Ответ 4

Вы можете поместить символ \ для выхода из конца строки:

if number > 5 \
   and number < 15:
    print '1'

В некоторых случаях (например, внутри круглых скобок) вам не нужны специальные символы для выхода из конца строки.

Подробнее в документация по лексическому анализу python:

Конец логической строки представлен токеном NEWLINE. Заявления не могут пересекать границы логической линии, кроме случаев, когда NEWLINE допускается синтаксисом (например, между операторами в составе заявления). Логическая строка построена из одного или нескольких физических строк, следуя явным или неявным правилам соединения строк.