Встречается на собеседованиях • сегодня
Какие знаешь способы создания контекстного менеджера
В Python есть два основных способа создания контекстного менеджера:
- Использование класса с методами
__enter__и__exit__:
python
class MyContextManager:
def __enter__(self):
print("Entering context")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("Exiting context")
if exc_type: # Обработка исключений
print(f"Exception occurred: {exc_val}")
return True # Подавляем исключение- Использование
contextlib.contextmanagerдекоратора (более питонический способ):
python
from contextlib import contextmanager
@contextmanager
def my_context_manager():
print("Entering context")
try:
yield "resource"
finally:
print("Exiting context")Оба способа позволяют использовать менеджер через конструкцию with:
python
with MyContextManager() as cm:
# do something
with my_context_manager() as res:
# do somethingКлассовый подход дает больше контроля, особенно при обработке исключений. Декораторный вариант проще и компактнее для простых случаев.

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