web-dev-qa-db-ja.com

視覚的なインデントのためにオーバーインデントされた継続線を使用するにはどうすればよいですか?

このコードをPEP8のガイドラインに合わせるために、修正するのに苦労しています。バックスラッシュで行を分割してから、角かっこで囲んでみました。さらに、2行目が最初の右角かっこの位置の直後に来ることを確認しました。

    if (len(self._stools[Origin]) > 0 and len(self._stools[dest]) and
        self.top_cheese(Origin).size > self.top_cheese(dest).size):
        raise IllegalMoveError

したがって、このコードでpep8.pyを実行するたびに、次のようになります。

TOAHModel.py:94:14:視覚的なインデントのためにE127継続行がオーバーインデントされています

14
wonggr

「継続行は次の論理行と区別されません」というメッセージが表示されていると思います。解決策は、2行目を別のインデントに移動することです-

_if (len(self._stools[Origin]) > 0 and len(self._stools[dest]) and
        self.top_cheese(Origin).size > self.top_cheese(dest).size):
    raise IllegalMoveError
_

その理由は、self.top_cheese(Origin).sizeが_raise IllegalMoveError_と同じインデントレベルにあるためです。これは、ifステートメントがどこで終了し、if内の実際のブロックがどこで終了するかが明確でないため、読者にとって難しい場合があります。ステートメントが始まります。これはあまり良く見えないと主張することができますが、それはそうです。

18