Выход из Python программными методами

Перевод статьи «How to Exit Python: A Quick Tutorial».

Заканчивая работу в Python, я зачастую просто нажимаю кнопку «Закрыть» в углу IDE, чтобы завершить работу программы, и IDE сама обрабатывает завершение работы Python. Но бывает, что мне нужно выйти из Python более программным способом, например, когда я работаю непосредственно в терминале или когда хочу, чтобы программа автоматически закрывала Python после запуска. В таких случаях для выхода следует использовать специальные встроенные функции Python.

Как выйти из программы на Python — короткая справка

Для завершения процессов Python в обычном коде используйте функции exit() или quit(), а в продакшен-коде — sys.exit(). В тех редких случаях, когда вам не нужно выполнять задачи очистки, можно использовать os._exit().

Вот примеры использования exit() и quit():

print("Hello World! Let's exit the program")
exit() # Используйте функцию exit() для завершения процесса в обычном коде
print("Welcome back World!") # После выхода этот код не запустится
print("Hello World! Let's exit the program")
quit() # Используйте функцию quit() для завершения процесса в обычном коде
print("Welcome back World!") # После выхода этот код не запустится

Выход из Python с помощью функции sys.exit():

import sys # В некоторых случаях может потребоваться импортировать модуль sys
print("Hello World! Let's exit the program")
sys.exit() # Используйте функцию sys.exit() для завершения процесса в продакшен-коде
print("Welcome back World!") # После выхода этот код не запустится

Что означает выход из Python?

Выход из Python означает процесс завершения работы интерпретатора или сеанса Python, что фактически приводит к прекращению выполнения программы Python. Обычно это включает в себя выполнение задач очистки перед завершением работы интерпретатора и самого Python. В зависимости от того, как вы выходите из Python, эти процессы очистки могут происходить автоматически, в фоновом режиме.

Четыре метода выхода из кода Python

Есть несколько методов выхода из Python, помимо того, который предоставляет ваша IDE. Давайте их рассмотрим.

Использование функций exit() или quit()

С помощью функции exit() можно поднять исключение SystemExit, которое завершает работу интерпретатора Python. Это в первую очередь полезно в интерактивной оболочке интерпретатора. Эта функция принимает необязательный аргумент — код выхода, который обычно используется для указания причины завершения работы.

exit()

или

exit(0)  # Выход со статусом успеха

Функция quit() работает так же, как и функция exit().

quit()

Эти две функции были добавлены для облегчения выхода из терминала Python. Даже если вы не знаете, как выйти, вы интуитивно догадаетесь попробовать слова «exit» или «quit».

Как функция exit(), так и функция quit() полагаются на модуль site, который может быть не всегда доступен. Поэтому использовать эти методы в производственном коде неразумно.

Использование функции sys.exit() в продакшен-коде

Для выхода из Python без использования модуля site в производственном коде обычно используется функция sys.exit() из модуля sys. Модуль sys обычно доступен, но его необходимо импортировать. Эта функция также принимает опциональный аргумент — код выхода.

Подобно exit() и quit(), sys.exit() вызывает исключение SystemExit, которое завершает работу Python.

import sys # В некоторых случаях может потребоваться импортировать модуль sys
sys.exit()

Быстрый выход из Python с помощью os._exit()

В дополнение к функциям exit() и quit() Python предлагает функцию os._exit() для быстрого завершения с ограниченной функциональностью. В отличие от exit() и quit(), которые вызывают исключение SystemExit, а затем выполняют несколько задач очистки, os._exit() немедленно завершает процесс Python без вызова дополнительных шагов очистки.

Эта функция полезна, когда требуется немедленное завершение. Но будьте осторожны: она обходит нормальный процесс очистки среды выполнения Python, что может вызвать проблемы в будущем. В подавляющем большинстве случаев использование exit(), quit() или sys.exit() является лучшим вариантом.

Горячие клавиши для выхода из Python

В интерпретаторе Python или терминале вы можете выйти из Python, нажав Ctrl+Z в Windows или Ctrl+D в macOS. Эти горячие клавиши сигнализируют интерпретатору, что файл завершен, и дают ему команду завершить работу Python. Как и os._exit(), этот метод не выполняет никаких задач очистки. Если вы хотите использовать этот метод, вам необходимо убедиться, что соответствующие задачи очистки явно указаны в вашем коде.

Распространенные проблемы

Самое важное, что нужно учитывать при выходе из программы, — это задачи очистки. Невыполнение очистки может привести к утечке памяти, потере или повреждению данных и целому ряду других проблем. Если ваша программа начинает вести себя странно, убедитесь, что вы правильно выполняете задачи очистки при выходе.

Еще одна распространенная проблема при выходе из Python — непреднамеренное завершение неправильной сессии или интерпретатора, особенно в средах с несколькими активными сессиями. Будьте осторожны при использовании сочетаний клавиш или функций выхода и следите за тем, из какой именно сессии вы выходите.

Вам может случиться работать в системе, в которой не установлен модуль site, что сделает exit() и quit() бесполезными. В этом случае обязательно используйте sys.exit(), так как модуль sys доступен всегда.

Заключение

Выход из Python с помощью программных средств является важным аспектом программирования на Python. Понимая различные методы выхода из Python и их практическое применение, вы можете эффективно управлять выполнением и завершением кода Python.

Прокрутить вверх