187

条件が満たされた場合に実行を停止したい単純な Python スクリプトがあります。

例えば:

done = True
if done:
    # quit/stop/exit
else:
    # do other stuff

基本的に、コードの流れが関数を終了し、残りのコードを実行しないようにする関数の本体の「return」キーワードと同等に動作するものを探しています。

4

8 に答える 8

313

使用できるスクリプトを終了するには、

import sys
sys.exit()

終了ステータス値 (通常は整数) を指定することもできます。

import sys
sys.exit(0)

通常、成功と解釈されるゼロで終了します。通常、ゼロ以外のコードはエラーとして扱われます。デフォルトでは、ゼロで終了します。

import sys
sys.exit("aa! errors!")

「aa! エラー!」を出力します。ステータスコード 1 で終了します。

os モジュールには _exit() 関数もあります。sys.exit ()関数は SystemExit 例外を発生させてプログラムを終了するため、try ステートメントとクリーンアップ コードを実行できます。os._exit() バージョンはこれを行いません。クリーンアップや出力バッファのフラッシュを行わずにプログラムを終了するだけなので、通常は使用しないでください。

Python docsは、os._exit() が os.fork() の呼び出しで作成された子プロセスを終了する通常の方法であることを示しているため、特定の状況で使用されます。

于 2008-10-07T17:49:22.147 に答える
20

スクリプトの本体を関数に入れ、その関数から戻ることができます。

def main():
  done = True
  if done:
    return
    # quit/stop/exit
  else:
    # do other stuff

if __name__ == "__main__":
  #Run as main program
  main()
于 2008-10-07T17:27:23.890 に答える
19

次のいずれかを使用できます。

import sys
sys.exit(...)

また:

raise SystemExit(...)

オプションのパラメーターは、終了コードまたはエラー・メッセージにすることができます。どちらの方法も同じです。以前はsys.exitを好みましたが、最近はSystemExitを上げるように切り替えました。これは、残りのコードの中で(raiseキーワードのために)目立つように見えるためです。

于 2008-10-07T18:11:22.367 に答える
19
import sys
sys.exit()
于 2008-10-07T16:49:25.527 に答える
6

試す

sys.exit("message")

パールみたいだな

die("message")

これがあなたが探しているものなら。インポートされたモジュールから呼び出されても、スクリプトの実行を終了します / def /function

于 2010-01-26T11:26:27.460 に答える
4

exit() はトリックを行う必要があります

于 2008-10-07T16:48:19.227 に答える
3

exit() で実行する必要があります。

于 2008-10-07T16:48:22.860 に答える
3

プログラム全体を停止する必要がある場合は、sys.exit() を使用してください。それ以外の場合は、空の return を使用してください。

于 2008-10-07T16:49:15.683 に答える