Разбить линию 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"
Я не думаю, что это возможно, но было бы круто!
Ответы
Ответ 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"}
Ответ 3
Стандартное руководство pep8, похоже, имеет отступы для новых строк для списка вещей в скобках, а для длинной строки они предлагают обратную косую черту в конце строки.
Отступы новых строк
Обратные косые черты в конце строки
Ответ 4
Вы можете поместить символ \
для выхода из конца строки:
if number > 5 \
and number < 15:
print '1'
В некоторых случаях (например, внутри круглых скобок) вам не нужны специальные символы для выхода из конца строки.
Подробнее в документация по лексическому анализу python:
Конец логической строки представлен токеном NEWLINE. Заявления не могут пересекать границы логической линии, кроме случаев, когда NEWLINE допускается синтаксисом (например, между операторами в составе заявления). Логическая строка построена из одного или нескольких физических строк, следуя явным или неявным правилам соединения строк.