Вопрос проверяет знание библиотеки atexit в Python, которая используется для регистрации функций, выполняемых при завершении программы.
Библиотека atexit в Python предоставляет простой способ определить действия, которые должны быть выполнены при завершении программы, независимо от того, завершилась ли она нормально или из-за исключения. Это особенно полезно для гарантированного освобождения ресурсов, таких как закрытие файлов, сетевых соединений или временных файлов.
atexit.register(func, *args, **kwargs).@atexit.register для простоты.import atexit
import tempfile
import os
# Создаем временный файл
temp_file = tempfile.NamedTemporaryFile(delete=False)
print(f"Создан временный файл: {temp_file.name}")
# Регистрируем функцию для удаления файла при завершении
def cleanup():
os.unlink(temp_file.name)
print("Временный файл удален")
atexit.register(cleanup)
# Основная работа программы
with open(temp_file.name, 'w') as f:
f.write("Важные данные")
# Программа завершается, cleanup вызывается автоматическиВажно помнить, что atexit не гарантирует выполнение при аварийном завершении (например, при SIGKILL). Для критических ресурсов лучше использовать контекстные менеджеры (with).
Вывод: atexit удобен для простых задач очистки, когда не требуется сложное управление контекстом, и помогает избежать утечек ресурсов в небольших скриптах.