2016-03-05 5 views
5

私は0をpythonスクリプトのどこにも戻していますが、何かもっと意味のある、もっと読みやすい何かを好むでしょう。私はその魔法の番号が気に入らない。 Pythonでの考え方は、Cのように、0の代わりにEXIT_SUCCESSを返すことができますか?私はここでそれを見つけることができませんでしたPythonにはEXIT_SUCCESS定数がありますか?

https://docs.python.org/3.5/library/errno.html

+0

単純に 'return'。 –

+0

なぜあなたは1つでも必要なのでしょうか?あなたの関数が失敗した場合は、エラーを発生させます*。 – jonrsharpe

+0

' return'文を単独で使うと 'None 'return'ステートメントを省略すると' None'が返されますが、返された 'None'値を使用しない場合にのみ使用してください。 – gtlambert

答えて

5

私は0

returnを返すよあなたはPythonでスクリプトの終了コードを設定する方法ではありません。終了コード0で終了する場合は、スクリプトを正常に完了させるだけです。終了コードは自動的に0に設定されます。別の終了コードで終了する場合は、sys.exitが使用するツールです。

関数内で0または1の戻り値を使用して、関数が成功したか失敗したかを示す場合、これは悪い考えです。何か問題が生じた場合は、適切な例外を発生させるべきです。

0

ここではreturnについて議論しているので、CのようなPythonをプログラミングしているようです。ほとんどのPython関数は、失敗した場合に例外を送出するように記述するのが理想です。検証関数の場合、おそらくTrueまたはFalseをリテラルとして返すのではなく、s.isdigit()のような式の結果として返すのが最も良いでしょう。

モジュールが関数ではないので、プロセスの戻り値をその環境に話すときは、returnを使用します。したがって、最上位のreturnステートメントは構文エラーとしてフラグが立てられます。代わりにsys.exitを使用してください。

この点でPythonは少しシンプルに見えるかもしれませんが、引数のないsys.exitの呼び出しは、デフォルトで成功します(つまり戻りコード0)。だからあなたのプログラムを単純化する最も簡単な方法は、失敗を示すことを望まない引数でコーディングを止めることです!

the documentationは、整数引数が返され、文字列引数の結果が戻りコード1となり、文字列がstderrに出力されます。

言語には、定数が含まれています(一部の環境に固有の機能はありますが、終了コードが提供されている場合はその値が実装固有またはプラットフォーム固有である必要があります)。

関連する問題