JacobHallénはかつて、最高のPythonスタイルがタフテの装飾の拒絶に続くことを観察しました(タフテの分野はプログラミング言語ではなく、情報の視覚的表示ですが):「インク」(ピクセル)または「紙」(スペース)を無駄にしないでください単なる装飾。
この原則から多くのことがわかります。冗長な括弧、セミコロン、コメントやdocstring内のばかげた「ASCIIボックス」、異なる行に「整列」するための無駄なスペース、特に二重引用符が必要でない限り一重引用符、続行するための\はありません。必須の場合を除いて、単に言語の規則を読者に思い出させるコメントはありません(読者が問題のある言語を知らない場合;-)など。
「PythonのTufte精神」のこれらの結果のいくつかは、Pythonコミュニティ内で、他の結果よりも物議を醸していることを指摘しておく必要があります。しかし、言語は確かに「タフテの精神」をかなり尊重しています...
「もっと物議を醸す」に移る(ただし、PythonのZenによって認可されている-import this
インタプリタプロンプトで):「フラットはネストよりも優れている」ので、ネストするのではなく「できるだけ早く出てください」。説明させてください:
if foo:
return bar
else:
baz = fie(fum)
return baz + blab
これはひどいことではありませんが、どちらも最適ではありません。「return」は「gets out」なので、ネストを保存できます。
if foo:
return bar
baz = fie(fum)
return baz + blab
より鋭い例:
for item in container:
if interesting(item):
dothis(item)
dothat(item)
theother(item)
二重にネストされているその大きなブロックはきちんとしていません...よりフラットなスタイルを検討してください:
for item in container:
if not interesting(item):
continue
dothis(item)
dothat(item)
theother(item)
ところで、特にPython専用のスタイルではないことは別として、私のペットのおしっこの1つ(どの言語でも、PythonではTufte's Spiritが私をサポートしています;-):
if not something:
this()
that()
theother()
else:
blih()
bluh()
blah()
「そうでなければ...else」はゆがんでいます!2つの半分を交換し、:を失いnot
ます
if something:
blih()
bluh()
blah()
else:
this()
that()
theother()