Добавление отступа Python в “пустых строках”

Который предпочтен ("". указание на пробел)?

A)

def foo():
    x = 1
    y = 2
....
    if True:
        bar()

B)

def foo():
    x = 1
    y = 2

    if True:
        bar()

Моя интуиция была бы B (это также, что энергия делает для меня), но я вижу, что люди используют A) все время. Это просто, потому что большинство редакторов там повреждается?

42
задан nisc 28 April 2010 в 08:53
поделиться

7 ответов

PEP 8 кажется неясным по этому вопросу, хотя утверждения о «пустых строках» можно интерпретировать в пользу B. Средство проверки стиля PEP 8 (pep8.py) предпочитает B и предупреждает, если вы используете A; однако оба варианта допустимы. Я считаю, что, поскольку Python будет успешно интерпретировать код в любом случае, это не имеет особого значения, и попытка его применения потребует много работы с очень небольшой выгодой. Я полагаю, если вы решительно поддерживаете одно или другое, вы могли бы автоматически преобразовать одно в другое. Попытка исправить все такие строки вручную, однако, была бы огромным делом и действительно не стоила усилий, ИМХО.

24
ответ дан 26 November 2019 в 23:32
поделиться

Emacs делает B) за меня, но я действительно не думаю, что это имеет значение. A) означает, что вы можете добавить строку с правильным отступом без табуляции.

1
ответ дан 26 November 2019 в 23:32
поделиться

Эта пустая строка принадлежит foo () , поэтому я считаю A наиболее естественным. Но я думаю, это всего лишь вопрос мнения.

13
ответ дан 26 November 2019 в 23:32
поделиться

TextMate прерывает свертывание блоков, если вы используете B, и я все равно предпочитаю A, поскольку это более «логично».

6
ответ дан 26 November 2019 в 23:32
поделиться

Я бы не стал называть первый пример "сломанным", потому что я знаю, что некоторые люди ненавидят, когда курсор "прыгает назад" при перемещении курсора вверх или в коде. Например. Visual Studio (по крайней мере, 2008) автоматически предотвращает это без использования каких-либо пробелов в этих строках.

3
ответ дан 26 November 2019 в 23:32
поделиться

Если вы используете A , вы можете скопировать и вставить свой блок в оболочке python, B получит неожиданный отступ ошибка.

37
ответ дан 26 November 2019 в 23:32
поделиться

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

Это вопрос этикета кодирования.

3
ответ дан 26 November 2019 в 23:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: