Как мне следовать Python PEP8 в отношении разрывов строк и насколько это важно?

Я пишу на Python 3.5.1 и я новичок в программировании.

Я использую gedit с pep8 и pyflakes, показывающие ошибки стиля в соответствии с руководство по стилю Python. Я не знаю, следовать ли рекомендациям по стилю в точности или нет.

Однако у меня есть три повторяющихся недостатка стиля, обозначенные E501: line too long (80 > 79 characters), E502: the backslash is redundant between brackets и E128/E127/...: continuation line under-indented for visual indent. Скриншоты ниже.

Мои два вопроса:

  1. Как правильно сделать разрыв строки в Python, чтобы избежать E501 и последующих ошибок стиля E502 и E127/128?
  2. Полезно ли следовать руководству по стилю pep8 до буквы, особенно с учетом публикации? Что говорят продвинутые программисты на Python?

E501: введите здесь описание изображения

E502: введите здесь описание изображения

E127 / 128 ...:  введите описание изображения здесь


person Til Hund    schedule 19.01.2016    source источник
comment
Имея в виду публикации, да, безусловно, следуйте руководству по стилю. Без исключений; стандарты существуют для взаимного понимания. Если вам не нравится руководство по стилю, отправьте новый PEP; в этом случае ожидайте, что он будет отклонен.   -  person msw    schedule 19.01.2016
comment
Почему это было закрыто? Есть отличный ответ на вопрос о пункте 2, как делать разрывы строк, которые будут приемлемы для PEP8. Изменить - как теперь предоставил @msw.   -  person Jamie Bull    schedule 19.01.2016
comment
Моя ценность 2c: 1. Определенно не используйте продолжение обратной косой черты, когда оно вам не нужно, например, в скобках. 2. Ваш отступ на этих продолженных строках слишком велик. 3. Многие люди относятся к вопросу о длине линии как к предложению, а не как к жесткому ограничению, поскольку современные мониторы намного больше, чем раньше. OTOH, придерживаясь стандарта, ваш код будет выглядеть лучше во многих местах, в том числе здесь, на SO.   -  person PM 2Ring    schedule 19.01.2016
comment
@msw: подозреваю, что _() - это функция i18n. См. stackoverflow.com/a/2964256/4014959   -  person PM 2Ring    schedule 19.01.2016


Ответы (1)


«Как я могу правильно сделать разрыв строки в python, чтобы избежать E501 и последующих ошибок стиля E502 и E127 / 128?»

progress = Utils.ProgressMeter('Source strings separated by white '
    'space are automatically concatenated by the '
    'interpreter and parenthesis are the natural syntax '
    'for line continuation. Remember to use trailing '
    'spaces.')

Поскольку ошибка E502 уже заключена в круглые скобки, обратная косая черта является избыточной. Вы пытались его устранить?

person msw    schedule 19.01.2016