Python Glossary English

все Python 3atexitфункция

atexit.register()

обработчики завершения

Регистрирует функцию, которая выполнится при нормальном завершении программы; работает и как декоратор.

Синтаксис

atexit.register(func, *args, **kwargs)

Обработчики вызываются в обратном порядке регистрации — после конца программы или sys.exit(). Они не вызываются при os._exit(), смерти от сигнала (SIGKILL или SIGTERM без обработчика) и фатальной ошибке, так что надёжно сохранять данные только ими нельзя. Исключение в обработчике печатается как «Exception ignored», но код выхода не меняет. Как декоратор он работает только для функции без аргументов.

Примеры

import atexit
@atexit.register
def goodbye():
    print('goodbye')  # → goodbye
atexit.register(print, 'зарегистрирован вторым, выполнится первым')
print('конец программы')  # → конец программы
import atexit, os
atexit.register(print, 'не будет напечатано')
print('выход через os._exit', flush=True)  # → выход через os._exit
os._exit(0)

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности