Python Glossary English

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