回答:
exitインタラクティブシェルのヘルパーです- sys.exitプログラムでの使用を目的としています。
site(場合を除き、起動時に自動的にインポートされ、モジュール-Sのコマンドラインオプションが指定されている)は、組み込みの名前空間にいくつかの定数を追加します(例exit)。これらは対話型インタープリターシェルに役立ち、プログラムでは使用しないでください。
技術的には、ほとんど同じですSystemExit。sysmodule.cでsys.exitそうします:
static PyObject *
sys_exit(PyObject *self, PyObject *args)
{
PyObject *exit_code = 0;
if (!PyArg_UnpackTuple(args, "exit", 0, 1, &exit_code))
return NULL;
/* Raise SystemExit so callers may catch it or clean up. */
PyErr_SetObject(PyExc_SystemExit, exit_code);
return NULL;
}
while exitはそれぞれsite.pyと_sitebuiltins.pyで定義されています。
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):
# Shells like IDLE catch the SystemExit, but listen when their
# stdin wrapper is closed.
try:
sys.stdin.close()
except:
pass
raise SystemExit(code)
__builtin__.quit = Quitter('quit')
__builtin__.exit = Quitter('exit')
3番目の終了オプション、つまりos._exitがあることに注意してください。これは、クリーンアップハンドラーの呼び出し、stdioバッファーのフラッシュなどを行わずに終了します(通常、の後の子プロセスでのみ使用する必要がありますfork())。
from module import *。
exit()コードで使用してシェルで実行すると、プログラムを強制終了するかどうかを尋ねるメッセージが表示されます。それは本当に不安です。
こちらをご覧ください
しかしsys.exit()、この場合はより良いです。プログラムを閉じ、ダイアログボックスを作成しません。
sys.exit()必要な場合でも、プログラム内で使用する必要があります。
-S使用しない限り、正常に動作します。でも動作させる方法-Sは、を指定することfrom sys import *です。