web-dev-qa-db-ja.com

PEP8:W292とW391の間の競合

私が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

それがどうあるべきか?ファイルの終わりに空白行を含める必要がありますか?

33
seler

W391は空白行、つまり2つの連続した\ns。競合はありません。

これはW391が話していることです:

 print '最終行' 
 
 

W292によると、これは間違っています。

 print '最終行' 

正しいのは:

 print '最終行' 
 
16
Burhan Khalid

Windowsでは「\ n」は行間の区切り文字ですが、Linuxでは「\ n」は任意の行の終了記号です。 Vimは、Linuxプラットフォームの行末に「\ n」を追加することに何の問題もありませんでしたが、OSの定義に従いました。

3
jeffzh