2016-11-25 6 views
-3

私はこのように書かれたコードを見てきました:スタイルによると、Pythonでsys.exit()を使ってアプリケーションを終了するときに、パラメータのような関数を入れるのは正しいですか?

if __name__ == "__main__": 
    #... 
    result = someFunction(someParameter) 
    sys.exit(result) 

とも、あなたはsys.exit()関数内での関数の呼び出しを記述するところ、この、のように:

ある
if __name__ == "__main__": 
    #... 
    sys.exit(someFunction(someParameter)) 

をスタイルに応じて最も正しいオプション?

+6

これは別の方法ではなく、同じことです.2番目の変数では変数を作成しませんでした。 – ettanany

+1

後で何らかのコードがあれば( 'sys.exit()'を忘れる)?変数を使用すると、その値が格納されます。関数の結果をインラインで使用するとどうなりますか?あなたはそれを使用した後もスタックに戻り値がありますか? 'gc.collect()'を呼び出さなければなりませんか? Pythonのメモリ管理についての答えは素晴らしいでしょう。 –

+0

同じ結果ですが、同じものではありません。私はスタイルに応じて最適なオプションが何かを知りたかったのです。フリービーが言ったように、最も読みやすいオプションは正しいので、最初のものです。 – Denr2

答えて

3

どちらも同等ですが、私はあなたがこれを知っていると思います。あなたがスタイルの観点から尋ねているのであれば、私はあなたが常により読みやすいオプションを好むべきだと言いたいと思います。この場合、最初のものは読みやすくなっていると思います。

Pythonは慣習的にsnake_caseを使用していますので、変数と関数を定義する際にもそれを考慮する必要があります。

result変数の名前をわかりやすく変更することもできます。

exit_status = some_function(some_parameter) 
sys.exit(exit_status) 

うまくいけば、これはあなたの後でした。

編集:@AnttiHaapalaは、succeededがPythonではFalsyであるが、終了コードとしてパスとみなされるため、最高の変数名ではないという良い点を作った。私はそれをexit_statusに改名しました。

+0

まあ、 'sys.exit'は成功のために' 0'になりますが、Pythonの '0'では* falsy *と見なされるので、変数に" successed "という名前は付けません。 –

+0

@AnttiHaapala良い点。あなたはそれを何と呼びますか? – freebie

+0

おそらく 'exit_status'または' exit_code' –

関連する問題