Кодовый стиль для отступа многострочного оператора if? [Дубликат]

На этот вопрос уже есть ответ здесь:

При использовании длинных отступов условий if вы обычно делают что-то вроде этого (на самом деле, PyDev делает такие отступы):

if (collResv.repeatability is None or
    collResv.somethingElse):
    collResv.rejected = True
    collResv.rejectCompletely()

Однако это помещает блок, запускаемый оператором if, на тот же уровень отступа, что и последняя часть условия if, что делает его очень уродливым / трудным для чтения на мой взгляд, поскольку вы не сразу видите, где начинается блок.

Некоторые другие стили, о которых я подумал:

if (collResv.repeatability is None or
        collResv.somethingElse):
    collResv.rejected = True
    collResv.rejectCompletely()

Это выглядит довольно непоследовательно, поскольку вторая строка имеет гораздо больший отступ, чем первая строка, но ее можно читать.

if (collResv.repeatability is None or
  collResv.somethingElse):
    collResv.rejected = True
    collResv.rejectCompletely()

] Это также более читабельно, чем в первом примере,но отступ больше не кратен 4, и, кроме того, это выглядит неправильно, поскольку вторая строка имеет меньший отступ, чем начало условия в первой строке.


Итак, мой главный вопрос: существует ли предлагаемый стиль отступа для случаев, подобных тому, которые не требуют слишком длинных строк (т. е. однострочное условие)? Если нет, то что вы предпочитаете для подобных случаев?

34
задан martineau 30 May 2017 в 17:32
поделиться