все Python 3Встроенные типыпонятие
exit
особые значения
Объект модуля site для интерактивной оболочки: exit() поднимает SystemExit. Это не встроенная функция в строгом смысле; в программах пишите sys.exit().
Синтаксис
exit(code=None)
Имена exit и quit кладёт во встроенное пространство имён модуль site при старте; при запуске python -S его нет, и скрипт с exit() падает с NameError. Это экземпляр класса Quitter: вызов закрывает sys.stdin и поднимает SystemExit с переданным кодом, а print(exit) лишь печатает подсказку. Документация прямо говорит не использовать его в программах — там нужен sys.exit(), который есть всегда; с 3.13 новый REPL понимает exit и без скобок.
Примеры
import sys
print(type(exit).__name__, type(exit).__module__) # → Quitter _sitebuiltins
try:
exit(3) # → SystemExit
except SystemExit as e:
print(e.code) # → 3
print(sys.stdin.closed) # → True — exit() закрыл stdin
import subprocess
import sys
code = 'import builtins; print(hasattr(builtins, "exit"))'
r = subprocess.run([sys.executable, '-S', '-c', code],
capture_output=True, text=True)
print(r.stdout.strip()) # → False — без site имени exit нет
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности