web-dev-qa-db-ja.com

Pythonプログラマーは空白の問題を不便に思いますか?

多くのプログラマーは、最初にPythonに出会ったとき、空白の重要性にすぐに気を失います。これが不便なさまざまな理由を聞いたことがありますが、Pythonプログラマーからの不満は聞いたことがありません。

もちろん、私はPython世界でキャリアを積んだので、多くのJava=プログラマーに会ったことはありません。

ですから、私の質問は、大規模なPythonプロジェクト(3か月以上、Pythonが使用される主要言語))に参加したあなたのためのものです。ホワイトスペースの問題は不便であり、継続的に煩わしいと思いますか?それとも、フローに入ったら問題ではなかったのですか?

私はPythonに賛成か反対か、または空白の使用に賛成または反対なので、質問をしていません。私はたまたまPythonが好きですが、大きなものに使用したことはありません。

Pythonの経験がない場合は、推測を行わないでください。

11
Eric Wilson

空白が煩わしいと感じるケースは1つだけです。これは、既存のコードを変更して、コードブロックを以前よりも多少インデントする必要がある場合です(たとえば、前にif:を追加または削除する)コード)。 Cのような言語で書くときは、ifと中括弧のペアを追加し、(Emacsの場合、または優れたエディターと思います)Tabを押すと、エディターが自動的にインデントを修正します。 Pythonでは、自分で行う必要があります。もちろん、それを自分で行うためのエディターショートカットがあります。そのため、それほど悪くはありませんが、冗長性が失われると、プログラマーに少し余分な負担がかかります。

ただし、全体としては、画面の半分が次のような行でいっぱいになるのを防ぐためだけの場合は、勝利です。

         }
      }
   }
}
14
dfan

Pythonの重要な空白が大好きです。私にとっては、DRYの構文レベルでの完璧な例です。コードのブロックの始まりと終わりを示す人間が読める方法は、インデントを使用することです。コードを読みやすくするには、言語に関係なくインデントする必要があります。コンパイラー/インタープリター用と人間用に1回ずつ、プログラマーにこの情報を2回指定させるのはばかげています。さらに、Cのような言語でのインデントはコメントに似ています。しかし、その意味はコンパイラー/インタープリターによって強制されず、実際の意味(中括弧がある場所)と非常に簡単に同期しなくなり、明確にするのではなく難読化する可能性があります。

50
dsimcha

重要な空白は実際には便利です。入力が少なくなります。それはコードをきちんと、そして明確にフォーマットします。これにより、コードが読みやすくなります。

(同じ理由で、Haskellの重要な空白も好きです。)

12
9000

私が初めてpythonを使用したとき、空白文字は新しく、煩わしい制限でした。

今は気づかないほどです。 pythonを11か月間使用しています。

8
Matt Ellen

まず、私のパンとバターの言語はPython、SQL、Javaです。私はPythonの空白が大好きです。構文とタイピングが少なく、読みやすく、きちんとフォーマットされたコードを書くように人々に強います。 OTOH、私はJava-の冗長性が嫌いなので、実際にPythonを使用して、Javaで書く必要のあるすべてのボイラープレートを生成します。 Java私の生産性に驚いた同僚。

ただし、大きな注意点の1つは、Webからコードをコピーして貼り付ける場合です。これにより、スペースとタブが混在し、クリーンアップするために追加の手順が必要になることがよくあります。通常、実行時例外の後でのみキャッチします。

5
Greg

プログラマーが空白の重要性に悩まされている場合、彼はおそらくpythonプログラマーになることはありません。

4
BenjaminB

実際のコーディングについては、それはまったく不便ではありませんが、実際には有益です(dsimchaの回答を参照)。

主要な空白を尊重しない通信技術(多くの非プログラミング指向のWebフォーラムなど)や、HTMLテンプレートなどの異なる言語内にPythonコードを埋め込む場合)を扱う場合、これは煩わしい場合があります。言語)、私はPythonの欠陥よりも先頭の空白を取り除くツールの欠陥のほうが多いように見えますが、コード構造を2度表す冗長言語は、そのような破壊的な環境を処理するためによりよく装備されていることは事実です(コードをエディターに貼り付け、明示的な構造マーカーに基づいて自動再インデントするか、またはコードが人間によって読み取られるのではなく実行されるだけであるかどうかを気にしないでください)。

3
ncoghlan

かなりの空白に問題がある人々と、ほとんどのインデントを関与せずに処理する、Emacsなどの優れたプログラマーのテキストエディターの経験がない人々の間には、かなりの重複があると思います。

いずれにせよ、いったんPythonを内部化したら、それはもはや問題ではありません。実際、その簡潔さと画面上での小さなスペースは、読みやすさの大きな利点になります。私は主にPythonを使用しているので、冗長性が多い言語(たとえば、JavaおよびC#)を自分で書くのが難しいと感じます。インデントが既に構造を明確にしているコードを中括弧で囲む私の神経をすりおろす。

3
JasonFruit

私は空白が迷惑だとは思わない。他の言語では、インデントの欠如や一貫性の欠如が非常に煩わしいことに気づきました。この問題はスタイルが解決しようとしている問題の1つであることを理解しています。

Pythonは私の主要言語の1つではありません。

インデントのタブやスペースの扱いがときどきわずらわしいと思います。これは、ある編集から別の編集にエディターを切り替えるとき、または他の誰かが書いたコードを編集するときに問題を引き起こす可能性があります。通常、解決は簡単です。

2
BillThor

私はC#/ Javascript/XBaseのバックグラウンドから特定の順序で来ていません、そしてPythonを使った私の手ぬぐいではそれは私にとってまったく考慮事項ではありません。それは他の言語のブレースのようなものですルールが言うように動作し、物事を入れ、あなたの目を乾かすことが私の態度です。

1
Alan B