最近、PEP 8に従うのが良い考えだと考え始めました。エディターに80列のマークを表示させ、それに合わせて行を折り返そうとしています。私の質問はこれです。PEP 8では、次のように述べています。
すべての行を最大79文字に制限します。
理にかなっています。
[...]長いテキストブロック(docstringまたはコメント)を流すには、長さを72文字に制限することをお勧めします。
なぜ72?docstringやコメントに79がうまくいかないのはなぜですか?
最近、PEP 8に従うのが良い考えだと考え始めました。エディターに80列のマークを表示させ、それに合わせて行を折り返そうとしています。私の質問はこれです。PEP 8では、次のように述べています。
すべての行を最大79文字に制限します。
理にかなっています。
[...]長いテキストブロック(docstringまたはコメント)を流すには、長さを72文字に制限することをお勧めします。
なぜ72?docstringやコメントに79がうまくいかないのはなぜですか?
私はそれがテキスト文書からの二日酔いだと信じています:
タイプライター時代の終わりには、ほとんどのデザインは72 CPLに向けられていました。これは、1インチあたり12文字のピッチに、6インチを掛けたものです(たとえば、IBM Selectricを参照)。これにより、マージンごとに少なくとも1インチが確保され、当時の米国政府は81/2×11インチの用紙で標準化されていました。
多くのプレーンテキストドキュメントは、従来とは異なり、72CPLに準拠しています。
これは、docstringがコード外のコンテキストでよく使用されるのと同じであると思います。したがって、ほとんどのプレーンテキストドキュメントが可能な限り一貫性を保つために使用するスタイルに準拠することは理にかなっています。たとえば、man
ページのテキストは通常72文字に折り返されます。docstringを72文字に制限することにより、出力はこれをhelp()
反映します。
プログラマーに関するこの質問も関連している可能性があります。
Docstringは通常、関数でインデントされ、トリプルクォートで開始および終了します。
def foo(bar, baz):
"""Frobnicate the foobars into baz
Parameters are ham and spammed.
"""
これは79-4-3=72文字残っています。
行を79文字にする必要があるのは、80文字幅の端末に収まるようにするためです(明らかにまだ存在しています)。docstringで72文字が使用されている理由は、両側に同じパディングがあり(結局、docstringはインデントされている)、80文字の幅に収まるということです。