PEP8: конфликт между W292 и W391 - PullRequest
30 голосов
/ 19 марта 2012

Насколько я знаю, в Unix хорошей практикой является всегда иметь пустую строку в конце файла - или поместить ее другими словами: каждая строка должна заканчиваться \n.

При проверкемой код Python с PEP8 Я заметил, что он также указывает, что в конце файла должно быть \n:

W292 no newline at end of file
    JCR: The last line should have a newline.

Что странно, это конфликтует с W391:

W391 blank line at end of file
    JCR: Trailing blank lines are superfluous.

    Okay: spam(1)
    W391: spam(1)\n

так должно быть?Должен ли я иметь пустую строку в конце файла или нет?

Ответы [ 3 ]

36 голосов
/ 19 марта 2012

W391 - это строка пусто , то есть два последовательных \n с.Там нет конфликта.

16 голосов
/ 19 марта 2012

Вот что говорит W391:

print 'last line'


Это неверно в соответствии с W292:

print 'last line'

Что правильно:

print 'last line'

3 голосов
/ 04 марта 2016

В Windows '\ n' - это разделитель между строками, но в Linux '\ n' - это конечный знак в любой строке.Vim не сделал ничего плохого, чтобы добавить '\ n' в конец строки на платформе Linux, но следуя определению ОС.

...