Python 終了コマンド: quit()、exit()、sys.exit()、および os._exit()

関数 quit()、exit()、sys.exit()、および os._exit() は、Python インタープリターが終了し、スタック トレースバックが出力されない SystemExit 例外を発生させる点で、ほぼ同じ機能を持っています。例外をキャッチして早期終了をインターセプトし、クリーンアップ アクティビティを実行できます。捕捉されなかった場合、インタプリタは通常どおり終了します。この記事では、終了する方法を説明します。 パイソン プログラム。

Python 終了コマンドとは何ですか?

Python の終了コマンドとは、Python プログラムの実行を終了したり、Python インタープリターを終了したりするために使用されるメソッドまたはステートメントを指します。一般的に使用される終了コマンドには ` sys.exit() `、` 出口() `、および` やめる() `。これらのコマンドはプログラムまたはインタープリタを停止し、ユーザーが実行を正常に終了できるようにします。 Python には終了用のコマンドがいくつかあります。ここではこれらのコマンドについて簡単に説明します。コマンドは次のとおりです。

  • Python の quit()
  • Pythonのexit()
  • Python を使用した sys.exit()
  • os._exit() Pythonで

注記 : 対話モード (ターミナルで Python を実行) では、通常、次のように入力して終了できます。 exit()> または quit()> 括弧なしで。

quit() 関数を使用した Python 終了コマンド

やめる() この関数は、サイト モジュールがインポートされている場合にのみ Python の終了コマンドとして機能するため、運用コードでは使用しないでください。実稼働コードとは、コードが現実世界の状況で対象読者によって使用されていることを意味します。この関数はインタープリタ内でのみ使用してください。バックグラウンドで SystemExit 例外を発生させます。これを印刷すると、メッセージが表示され、Python のプログラムが終了します。

例: 提供されたコードでは、 i> が 5 に等しい場合、出力されます やめる そして、を使用して Python インタープリタを終了しようとします。 quit()> 関数。もし i> が 5 に等しくない場合は、次の値を出力します。 i>

Python3




for> i> in> range> (> 10> ):> > if> i> => => 5> :> > print> (quit)> > quit()> > print> (i)>

出力:

0 1 2 3 4 Use quit() or Ctrl-D (i.e. EOF) to exit 

Python 終了コマンドを使用して exit() 関数

Python の exit() は、site.py にある場合は Python の exit コマンドとして定義されており、サイト モジュールがインポートされている場合にのみ機能するため、インタープリターでのみ使用する必要があります。これは、Python をよりユーザーフレンドリーにするための quit() の同義語のようなものです。また、印刷時にメッセージが表示され、Python のプログラムが終了します。

: 提供されたコードで、 i> が 5 に等しい場合、出力されます 出口 そして、を使用して Python インタープリタを終了しようとします。 exit()> 関数。もし i> が 5 に等しくない場合は、次の値を出力します。 i>

Python3




for> i> in> range> (> 10> ):> > if> i> => => 5> :> > print> (exit)> > exit()> > print> (i)>

出力:

0 1 2 3 4 Use exit() or Ctrl-D (i.e. EOF) to exit 

Python を使用した sys.exit([arg])

quit() や exit() とは異なり、sys.exit() は、sys モジュールの実稼働コードで使用するのが適切な場合、常に使用可能である場合、Python の終了コマンドとみなされます。オプションの引数 arg には、出口または別のタイプのオブジェクトを指定する整数を指定できます。整数の場合は、 0 は正常に終了したとみなされます。
注記: 文字列を sys.exit() メソッドに渡すこともできます。

例: 指定されたコードでは、 sys.exit('Age less than 18')> この行は Python スクリプトをメッセージで終了します 18歳未満 変数の場合 age> 18 未満の場合 age> 18 以上の場合、印刷されます 年齢は18歳以上です。 このコードは、特定の条件が満たされたときに特定のメッセージを表示してスクリプトを終了するために使用されます。そして、Python のプログラムを停止します。

Python3




import> sys> age> => 17> if> age <> 18> :> > sys.exit(> 'Age less than 18'> )> else> :> > print> (> 'Age is not less than 18'> )>

出力:

An exception has occurred, use %tb to see the full traceback. SystemExit: Age less than 18 

Python の os._exit(n)

os._exit() Python のメソッドは、クリーンアップ ハンドラーの呼び出しや stdio バッファのフラッシュなどを行わずに、指定されたステータスでプロセスを終了するために使用されます。

注記: このメソッドは通常、os.fork() システムコールの後に子プロセスで使用されます。プロセスを終了する標準的な方法は、sys.exit(n) メソッドです。

: この例では、以下の Python コードは、次を使用して親子プロセス関係を作成します。 os.fork()> 親プロセスは子プロセスが終了するのを待って終了コードを取得しますが、子プロセスはメッセージを出力して成功のステータス コードを返して終了します。

Python3




import> os> pid> => os.fork()> if> pid>>> 0> :> > > print> (> ' In parent process'> )> > info> => os.waitpid(pid,> 0> )> > if> os.WIFEXITED(info[> 1> ]) :> > code> => os.WEXITSTATUS(info[> 1> ])> > print> (> 'Child's exit code:'> , code)> > else> :> > print> (> 'In child process'> )> > print> (> 'Process ID:'> , os.getpid())> > print> (> 'Hello ! Geeks'> )> > print> (> 'Child exiting..'> )> > > os._exit(os.EX_OK)>

出力:

In child process Process ID: 25491 Hello ! Geeks Child exiting.. In parent process Child's exit code: 0 

結論

上記の 4 つの exit 関数のうち、sys.exit() が最も好まれる理由は、exit() 関数と quit() 関数は実稼働コードでは使用できないのに対し、os._exit() は即時終了が必要な場合のみの特別な場合にのみ使用できるためです。