PEP8:W292和W391之间的冲突

时间:2012-03-19 09:58:00

标签: python pep8

据我所知,在unix中,最好总是在文件末尾留空行 - 或换句话说:每一行都应以\n结尾。

在用PEP8检查我的python代码时,我注意到它还指出文件末尾应该有\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 个答案:

答案 0 :(得分:36)

W391是空白行,即连续两次 \n。没有冲突。

答案 1 :(得分:16)

这就是W391所说的:

print 'last line'


根据W292,这是错误的:

print 'last line'

正确的是:

print 'last line'

答案 2 :(得分:3)

在Windows中,'\ n'是行之间的分隔符,但在linux'\ n'中是任意行的结束符号。 Vim在linux平台的行尾添加'\ n'但是遵循os定义并没有错。