Встречается на 8% собеседований по Python
Какие знаешь способы создания контекстного менеджера
В 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
интервью вопросы и ответы