2016-08-08 7 views
0

私は初心者には、Pythonとプログラミング一般的です。私がPythonを学んでいるとき、私は良い習慣をつくるか、良い習慣に従っています。それでは、私が現在していることをまず説明しましょう。コマンドラインを使ってpythonスクリプトを実行する利点は何ですか?

私はEmacs(prelude)を使ってpythonスクリプトを実行します。キーバインドC-cC-cは、pythonスクリプトを含むバッファを評価します。 >>>プロンプトを表示して、新しいバッファをPythonインタプリタで取得します。この環境では、スクリプトで使用されるすべての変数にアクセスできます。たとえば、xyがスクリプトで定義されている場合は、>>> x + yと評価して評価することができます。

pythonスクリプト(つまり、$ python scriptname.py)を実行するためにコマンドラインを使用して私の周りの多くの人が(ほとんどではないにしても)多くの人を見ています。私がこれを行うと、シェルプロンプトに戻り、xyの変数にアクセスできなくなり、x + yを実行することができなくなります。だから私は、コマンドラインを使ってPythonスクリプトを実行することの利点がわからなかった。

Emacsをエディタとして使用し、Terminal(私はMacを使用しています)を使ってスクリプトを実行するだけでいいですか?より良い方法は何ですか?

ありがとうございました!

+0

周囲の人々がなぜコマンドラインを使用しているのか知りたいのであれば、自分の動機だけを推測できる人ではなく、*彼ら*に質問することができます。スクリプトが終了したらどうしますか? Emacsを読み込んでPythonを読み込んでスクリプトを実行しますか?あなたの周りの人は何を編集するのに使うのですか?彼らはEmacsで通訳を使うことができると知っていますか? – TessellatingHeckler

+1

実行中の環境と同じ環境でプログラムをテストする必要があります。本番環境では、エディタから実行される可能性は低いです。しかし、開発中には、それはあなたが最も生産的なものになりますが、それは個人的な味です。 – cdarke

+0

彼らはCLを使うことが彼らが知っている唯一の方法であり、それを守っているようだと言いました。彼らの誰もEmacsを使用していません。彼らは比較できませんでした。 – zcadqe

答えて

0

人々は、異なる目的のために異なるツールを使用します。

プログラムへのインターフェイスに関する重要な質問は、ユーザーは誰ですか?あなたはプログラマとして、インタプリタを使ってプログラムをテストし、エラーをチェックします。多くの場合、ユーザはアプリケーション/スクリプトとインタプリタで対話していないため、実際に変数にアクセスする必要はありません。たとえば、PythonのWebアプリケーションでは、通常、クライアントのHTTP要求を適切なハンドラにリダイレクトするmain.pyスクリプトがあります。これらのハンドラは、クライアントが要求すると自動的にpythonスクリプトを実行します。その出力はユーザに表示されます。 PythonのWebアプリケーションでは、開発者がプロ​​グラムのバグを排除しようとしているのでなければ、通常、main.pyのようなファイル内の変数にアクセスすることは気にしません(実際には、いくつかのケースでは問題)。スクリプトの出力だけが必要なので、コマンドラインでそのスクリプト関数を実行し、その結果をクライアントに表示します。

ベストプラクティスについて:もう一度、何をしているかによって異なります。

Pythonインタプリタを計算に使用することは、分離された関数をテストするのには問題ありませんが、Pythonスクリプトに動く部分が多い大きなプロジェクトでは機能しません。数百行に及ぶPythonスクリプトがあれば、変数名を覚えておく必要はありません。その場合は、内部コンポーネントにアクセスする必要がないため、コマンドラインでスクリプトを実行する方がよいでしょう。

新しいスクリプトファイルを作成する場合は、そのスクリプトを単一の一連のタスク用に作成する必要があります。たとえば、上のハンドラの例では、main.pyの関数はすべてHTTPリクエストの処理に対応しています。 xを定義する、yを定義する、そしてそれを追加するなどのために、あなたが将来必要とするかもしれない関数を作成していないので、あなた自身のファイルは本当に必要ではありません。しかし、組み込みメソッドでは使用できないたくさんの関数を作成しているとします(複雑な例:K次元ベクトルを別のK次元ベクトルに縮小するsoftmax関数、すべての要素が0と1の間の値です)。すべての要素の合計が1になっている場合)、スクリプトファイルでキャプチャし、そのスクリプトの手順を後で引用します。その場合は、独自のスクリプトファイルを作成し、別のPythonスクリプトで引用して実行します。

関連する問題