Python の終了コマンド - なぜこんなに多く、それぞれいつ使用すればよいのでしょうか? 質問する

Python の終了コマンド - なぜこんなに多く、それぞれいつ使用すればよいのでしょうか? 質問する

Python はスクリプトの実行を停止するためのさまざまなコマンドをサポートしているようです。私
が見つけた選択肢は次のとおりです: quit()、、、exit()sys.exit()os._exit()

何か見逃していますか? それらの違いは何ですか? それぞれいつ使用しますか?

ベストアンサー1

それらについていくつか情報を提供しましょう:

  1. quit()単にSystemExit例外。

    さらに、印刷すると、次のメッセージが表示されます。

    >>> print (quit)
    Use quit() or Ctrl-Z plus Return to exit
    >>>
    

    この機能は、Python を知らない人を助けるために追加されました。結局のところ、初心者が Python を終了しようとする可能性が最も高いことの 1 つは、 と入力することですquit

    しかしながら、本番コードでは使用すべきではquitありませ。これは、siteモジュールがロードされます。代わりに、この関数はインタープリタでのみ使用する必要があります。

  2. exit()は のエイリアスですquit(またはその逆)。これらは、Python をよりユーザーフレンドリーにするために一緒に存在します。

    さらに、印刷すると次のようなメッセージが表示されます。

    >>> print (exit)
    Use exit() or Ctrl-Z plus Return to exit
    >>>
    

    ただし、 と同様にquitexitは製品コードで使用するのは適切ではないと考えられており、インタープリタ内での使用に限定する必要があります。これは、 も モジュールに依存しているためですsite

  3. sys.exit()も例外を発生させます。つまり、その点ではおよびとSystemExit同じであるということです。quitexit

    しかし、これら2つとは異なり、sys.exitは製品版コードで使用するのに適していると考えられています。これは、sysモジュールは常に存在します。

  4. os._exit()クリーンアップハンドラの呼び出しやstdioバッファのフラッシュなどを行わずにプログラムを終了します。したがって、これは標準的な終了方法ではなく、特別な場合にのみ使用してください。最も一般的なのは、os.fork

    示されている 4 つの方法のうち、この方法だけが独自の機能を備えていることに注意してください。

まとめると、4 つの方法はすべてプログラムを終了します。ただし、最初の 2 つは製品コードで使用するには不適切であると考えられており、最後の方法は非標準のダーティな方法で、特別なシナリオでのみ使用されます。したがって、プログラムを通常どおり終了する場合は、3 番目の方法を使用してくださいsys.exit


sys.exitあるいは、私の意見では、舞台裏で行われていることを直接実行して、次のように実行するのがさらに良いでしょう。

raise SystemExit

この方法では、最初にインポートする必要はありませんsys

ただし、この選択は単にスタイルによるものであり、完全にあなた次第です。

おすすめ記事