Pythonにはプログラムを終了するための2つの関数、exit()sys.exit()があります。これらの関数は似ていますが、使用する状況によって適切な関数が異なります。

exit()

exit()はPythonの対話シェルで使用されます。この関数は標準入力を閉じてSystemExit例外を発生させ、その結果として対話シェルが終了します。

class Quitter(object):
    def __init__(self, name):
        self.name = name
    def __repr__(self):
        return 'Use %s() or %s to exit' % (self.name, eof)
    def __call__(self, code=None):
        try:
            sys.stdin.close()
        except:
            pass
        raise SystemExit(code)

sys.exit()

一方、sys.exit()sysモジュールが提供する関数で、SystemExit例外を発生させます。これはプログラムを終了しようとしていることをPython処理系に伝えるものであり、その結果としてプログラムが終了します。

def sys_exit(PyObject *self, PyObject *args):
    PyObject *exit_code = 0;
    if (!PyArg_UnpackTuple(args, "exit", 0, 1, &exit_code))
        return NULL;
    PyErr_SetObject(PyExc_SystemExit, exit_code);
    return NULL;

まとめ

exit()sys.exit()はどちらもプログラムを終了させるための関数ですが、使用する状況によって適切な関数が異なります。対話シェルでプログラムを終了させる場合はexit()を、スクリプト内でプログラムを終了させる場合はsys.exit()を使用します。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です