コンテンツにスキップ

Top

Python の exit と sys.exit と os._exit の違いって?

Python で 終了させるときexit関数を使おうとしたところ、exit() と sys.exit() と os._exit() の3つあることに気づいた。

これの使い分けって何だろう?と思い調べた。

exit() について

exit()はコマンドプロンプトでインタプリタにPythonを使うときに使うexit関数と覚えておけばよい。

sys.exit() について

いわゆるアプリケーション(スクリプト)内で使うのがsys.exit()。メインプロセスを殺すことができる。
まぁ正直 exit() 呼んでも結果は同じなのだけど、このsys.exit()は引数で終了ステータスを設定できる点が異なる。

os._exit() について

これはforkでプロセスを作ったときにそのプロセスを殺すときに使うやつ。 言い換えるとforkしないなら使わない。

まぁあんま考えずに、初心者はsys.exit()しとけば文句言われない。
(forkしてマルチプロセスプログラミングする中級者以上の人は os._exit() しなきゃいけないことぐらいわかってるので)

以上です。