2016-10-02 10 views
1

に戻り動作を理解していませんその後。は、私はちょうど簡単なコードをしようとしていたのpython

なぜそうですか?

2サンプル出力:

この

文字列1

プロセス終了コードで終了し、メイン1

============

がstring1

これは主

プロセスは、1

+0

はどのようにしても印刷されていること?なぜ 'sys.exit()'は文字列をパラメータとして取りますか? cricket_007 @ –

+1

'sys.exit' https://docs.python.org/2/library/sys.html#sys.exit – timakro

+0

@timarkoのドキュメントを参照してください - 私の質問はOP、のではないそんなに私の不足に向けました理解 –

答えて

2

sys.exit終了コードで終了するがmain()の戻り値を取得し、アプリケーションのエラーコードとして生成します。値は通常数値でなければなりませんが、Pythonはややこしいことです。 sys.exitのドキュメントから

オブジェクトの別の種類が渡された場合、いずれも ゼロを通過すると同等ではなく、任意の他の目的は、標準エラーと1の出口 コードにおける結果に印刷されます。特に、sys.exit(「いくつかのエラーメッセージ」)は、エラーが発生した場合、プログラムを終了する迅速 方法です。

上記のように、何が起こってすることができること(print用)stdoutのフラッシュとstderrに出力間の競争です。

printsys.stdout.flush)の後にstdoutをフラッシュし、そのように一貫した出力が得られるかどうかを確認することをお勧めします。

+0

のドキュメントを参照してください 'sys.exit' https://docs.python.org/2/library/sys.html#sys.exit – timakro

+0

@timakro:はい、あなたは正しいです。それを指摘してくれてありがとう –

+0

@EliBenderskyありがとう。私はこの振る舞いの背後にあるアイディアを得た。私はsys.stdoutを試しました。print文の後にflush()を実行しますが、それと同じ動作です。 –

関連する問題