Python Glossary English

все 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Сообщить о неточности