Python 3.0+atexitфункция
atexit.unregister()
обработчики завершения
Убирает функцию из списка обработчиков завершения — все её регистрации сразу, с любыми аргументами.
Синтаксис
atexit.unregister(func)
Функция сравнивается через ==, поэтому lambda, переданную в register(), снять нельзя, если не сохранить её в переменную. Если функция не регистрировалась, ничего не происходит и ошибки нет — опечатку здесь не заметить. Вызывать register() и unregister() изнутри работающего обработчика нельзя: поведение не определено.
Примеры
import atexit
def cleanup(name):
print('cleanup', name)
atexit.register(cleanup, 'a')
atexit.register(cleanup, 'b')
atexit.register(print, 'остался только этот')
atexit.unregister(cleanup) # сняты обе регистрации
atexit.unregister(len) # не регистрировалась — ошибки нет
print('конец') # → конец / остался только этот
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности