違いは何だexit(0)
とexit(1)
Pythonでは?
見回してみましたが、これらの行に特定の質問は見つかりませんでした。既に回答されている場合は、リンクで十分です。
if
は、bash
ラッパーのステートメントで直接使用できるため、Pythonプログラムが成功したかどうか、またはゼロ以外のステータスが発生したかどうかに関係なく、さらにアクションを実行できることです。
違いは何だexit(0)
とexit(1)
Pythonでは?
見回してみましたが、これらの行に特定の質問は見つかりませんでした。既に回答されている場合は、リンクで十分です。
if
は、bash
ラッパーのステートメントで直接使用できるため、Pythonプログラムが成功したかどうか、またはゼロ以外のステータスが発生したかどうかに関係なく、さらにアクションを実行できることです。
回答:
0と1は終了コードです。
exit(0)
エラー/問題のないクリーンな終了を意味します
exit(1)
問題/エラー/問題があったことを意味し、プログラムが終了します。
これはPython固有ではなく、かなり一般的です。ゼロ以外の終了コードは異常終了として扱われ、エラーコードは問題の内容を示す場合があります。エラーコード0は、正常終了を意味します。
これは、他のプログラム、シェル、呼び出し元などがプログラムで何が起こったかを知り、それに応じて続行するのに役立ちます。
exit(-1)
場合、値は次のようになります。exit(255)
最下位の8ビットが呼び出し側プログラム(シェルなど)に中継されます。
exit()
はsite
モジュールによって追加されるため、プログラムでは使用しないでください。別のモジュールをインポートしたくない場合はsys.exit()
、代わりにを使用しraise SystemExit
ます。
Pythonを含むすべてのCプログラムの標準的な規則は、exit(0)
成功を示すため、exit(1)
または失敗を示すために(1..255の範囲の)他のゼロ以外の値です。0..255の範囲外の値は256を法として扱われます(終了ステータスは8ビット値に格納されます)。時々、それは署名されたものとして扱われます(そのため、-128、-127などが表示される場合があります)が、通常は、署名されていないものとして扱われます。
このステータスは、Pythonを呼び出したコードで利用できます。この規則はプラットフォーム全体に適用されますが、ゼロ以外の終了ステータスの意味はプラットフォームによって異なる場合があります。
exit()
関数に渡す番号は、単にプログラムの戻りコードであり、オペレーティングシステムに渡されます。プログラムの観点からは違いはありません。どちらの場合も実行は終了し、関数に提供された値はOSに渡されます。ただし、一部のツールやスクリプトでは、プログラムの終了コードが考慮されます。ほとんどのツールは、成功すると0を返し、エラーを示すためにゼロ以外を返します。
そのため、プログラムがスクリプト、自動化ツール、またはリターンコードを考慮した他のソフトウェア(IDEなど)から実行される場合は、何を返すかに注意する必要があります。
疑わしい場合は、0を返すだけですべてが正常であることを示します。
exit(0)
:これにより、プログラムは正常に終了して終了します。
exit(1)
:これにより、プログラムはシステム固有の意味で終了します。
多くのシステムでは、exit(1)
何らかの障害を通知しますが、保証はありません。
私が覚えているように、C標準は3つの標準終了値のみを認識します。
EXIT_SUCCESS
-正常終了EXIT_FAILURE
-失敗した終了0
- と同じ EXIT_SUCCESS
exit()
docsへのリンクは次のとおりです。