Dalam Python, ada dua fungsi dengan nama yang sama, exit()dan sys.exit(). Apa bedanya dan kapan saya harus menggunakannya?
Dalam Python, ada dua fungsi dengan nama yang sama, exit()dan sys.exit(). Apa bedanya dan kapan saya harus menggunakannya?
Jawaban:
exitadalah penolong untuk shell interaktif - sys.exitdimaksudkan untuk digunakan dalam program.
The
sitemodul (yang diimpor secara otomatis saat startup, kecuali jika-Sopsi baris perintah yang diberikan) menambahkan beberapa konstanta untuk built-in namespace (misalnyaexit) . Mereka berguna untuk shell interpreter interaktif dan tidak boleh digunakan dalam program .
Secara teknis, mereka kebanyakan melakukan hal yang sama: membesarkan SystemExit. sys.exitmelakukannya di sysmodule.c :
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;
}
Sementara exitdidefinisikan masing-masing dalam site.py dan _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')
Perhatikan bahwa ada opsi keluar ketiga, yaitu os._exit , yang keluar tanpa memanggil penangan pembersihan, pembilasan stdio buffer, dll. (Dan yang biasanya hanya digunakan dalam proses anak setelah a fork()).
from module import *.
Jika saya menggunakan exit()kode dan menjalankannya di shell, itu menunjukkan pesan yang menanyakan apakah saya ingin mematikan program atau tidak. Benar-benar mengganggu.
Lihat disini
Tetapi sys.exit()lebih baik dalam hal ini. Itu menutup program dan tidak membuat kotak dialog.
sys.exit()harus digunakan di dalam program.
-Sdigunakan. Cara untuk membuatnya bekerja dengan-Sadalah untuk menentukanfrom sys import *.