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