3

PEP 8を読んでいて、最大レベルのインデントについては何も表示されていないことに気付きました。もちろん、79文字の制限はインデントのレベルに制限を課しますが、Pythonで推奨される最大インデントレベルはありますか?これについてどう思いますか?会社レベルのポリシーはありますか?

他の場所からの例として、LinusTorvalsはLinuxカーネルスタイルガイドで次のように述べています。

[...]その答えは、3レベルを超えるインデントが必要な場合は、とにかく失敗しているので、プログラムを修正する必要があるということです。

4

4 に答える 4

8

ここで最も重要なの読みやすさです。1ダース行にわたる4または5レベルのインデントは、4または5ページ/画面で実行される関数の3レベルほど読むのにそれほど問題ではありません。

インデントが多すぎるかどうか疑問に思っている場合は、おそらくそうです。いくつかの関数を使用するようにコードをリファクタリングできますか?リスト内包表記/リスト内包表記?たぶんitertoolsを見て、そこに何かが役立つかどうかを確認しますか?..。

于 2012-06-09T10:33:45.853 に答える
5

メタプログラミング(コードを書き込むコードの記述)中にハードインデントの制限に達しました。これは100です。CPython2.7.8では、インポート時に次のようにスローされます。

IndentationError: too many levels of indentation

したがって、実際の質問に対しては、どのようなコンテキストやポリシーでも、推奨される制限は100未満である必要があります。:)

于 2014-12-22T21:07:24.113 に答える
3

手続き型パラダイムを扱っている限り、Linus Torvaldsの3レベルのインデントルールは有効であると見なすことができます(常に有効なものはほとんどないため、常に有効であるとは限りません)。

Pythonは、Cとは異なり、少なくとも1レベルのインデントを追加するOOPを提供します。そのため、多くの場合、3〜4レベルのインデントが必要になる場合があります。

于 2012-06-09T11:11:07.223 に答える
2

それはスタイルなので、個人的な好みが影響しますが、3-4はあなたが行くべき範囲です。

ただし、読みやすさが重要なので、理想的には、他の誰かにコードを調べてもらい、理解するのが難しいかどうかを教えてもらいます。

多くのPythonの「ルール」と同様に、正当化できる場合はそれらを曲げます。

于 2012-06-09T09:03:10.390 に答える