web-dev-qa-db-ja.com

行が長すぎます。 Django PEP8

PEP8情報:

models.py:10:80: E501 line too long (83 > 79 characters)

Models.py:

field = TreeForeignKey('self', null=True, blank=True, related_name='abcdefgh')

この行を正しく書く方法は?

21
Angelina

それは「正しい」、PEP8は79文字以上の行にフラグを立てるだけです。しかし、あなたがそれを心配しているなら、次のように書くことができます:

field = TreeForeignKey('self',
                       null=True,
                       blank=True,
                       related_name='abcdefgh')

またはこれ:

field = TreeForeignKey(
    'self',
    null=True,
    blank=True,
    related_name='abcdefgh',
)

または、実際には、単一行を複数の短い行に分割する他のスタイル。

28
mipadi

Autopep8と呼ばれるこのきちんとしたプログラムを見つけました! https://github.com/hhatto/autopep8

pip install autopep8
autopep8 -i models.py

(再帰的に)次のこともできます。

autopep8 -ri package/

Auto PEP8は、コードロジックではなく、ファイルの安全な変更のみを行い、レイアウトの変更のみを行います。

15
umeboshi

細かく分割するのにあまり便利ではない、とんでもない長い文字列がある場合(Sentry DSN、MIDDLEWAREやINSTALLED_APPSの時折のモジュールなど)、単に# noqaは行末にあり、リンターはその行を無視します。控えめに使用し、あなたが要求した場合には絶対に使用しないでください。

これは非常に主観的です。厳密にE501をフォローしていた場合、次のように書きます。

field = TreeForeignKey('self',
                       null=True,
                       blank=True,
                       related_name='abcdefgh')

通常、80ではなく100を長すぎると考えます。

5
Pavel Anossov

私は通常、次のように、元の行よりも1レベル深いインデントのパラメーターを揃えるためにそれを分割します。

field = TreeForeignKey('self', null=True,
    blank=True, related_name='abcdefgh')

特にTreeForeignKeyTreeForeignKeyWithReferencesToSomethingElseのようなものである場合、すべてのパラメーターは、開き括弧で並べると、ウィンドウの右端から始まります。パラメーターのいずれかがdefaultvalueforcertaincircumstancesのような長い名前を持っている場合、80列未満にすべてを収めることができない場合があります。

field = TreeForeignKeyWithReferencesToSomethingElse('self',
                                                    defaultvalueforcertaincircumstances='foo')

また、同じ行に複数の関数パラメーターを配置することを好みます(正しく見えない場合を除いて、私は純粋主義者ではありません!)、垂直方向のスペースが過度に拡大しないようにして、それ以外の場合よりも私のエディター。

0
Kirk Strauser