Встречается на собеседованиях • сегодня
Приходилось ли писать собственные контекстные менеджеры
Да, приходилось. В Python контекстные менеджеры реализуются через протокол __enter__ и __exit__ или с помощью декоратора @contextmanager из модуля contextlib. Они полезны для управления ресурсами (файлы, соединения) и выполнения setup/teardown операций.
Пример с классом:
python
class DatabaseConnection:
def __enter__(self):
self.conn = connect_to_db()
return self.conn
def __exit__(self, exc_type, exc_val, exc_tb):
self.conn.close()
if exc_type is not None:
print(f"Error occurred: {exc_val}")Пример с @contextmanager:
python
from contextlib import contextmanager
@contextmanager
def temp_file(path):
try:
f = open(path, 'w')
yield f
finally:
f.close()Контекстные менеджеры гарантируют освобождение ресурсов даже при возникновении исключений.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы