Что такое контекстные менеджеры в Python, для чего и где они используются?

Контекстный менеджер управляет входом и выходом из блока with: открытием и закрытием ресурса, захватом и освобождением блокировки. Он вызывает __enter__ и __exit__.

Короткий ответ

Что ответить на собеседовании

Контекстный менеджер управляет входом и выходом из блока with: открытием и закрытием ресурса, захватом и освобождением блокировки. Он вызывает enter и exit.

Подробный разбор

Ответ с пояснениями

Контекстный менеджер управляет входом и выходом из блока with: открытием и закрытием ресурса, захватом и освобождением блокировки. Он вызывает enter и exit.

Если вход завершился успешно, при нормальном выходе и исключении вызывается exit. Он получает сведения об исключении и может подавить его, вернув истинное значение. Пример:

with open("data.txt", encoding="utf-8") as stream:
    text = stream.read()

Файл закроется и при ошибке чтения. Аварийное завершение процесса не даёт такой гарантии. Для асинхронных ресурсов существует async with.

Источник: docs.python.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее