Встречается на собеседованиях • сегодня
Как сделать свой контекстный менеджер в рамках функции в Python
Для создания контекстного менеджера в Python можно использовать декоратор @contextmanager из модуля contextlib. Вот пример:
python
from contextlib import contextmanager
@contextmanager
def my_context_manager():
print("Entering the context") # код до yield - аналог __enter__
resource = "some resource"
try:
yield resource # значение передается в блок with
finally:
print("Exiting the context") # код после yield - аналог __exit__
Использование
with my_context_manager() as res:
print(f"Working with {res}")
text
Ключевые моменты:
1. Функция должна быть генератором (содержать yield)
2. Код до yield выполняется при входе в контекст
3. Код после yield выполняется при выходе (даже если было исключение)
4. Значение после yield становится доступным в блоке with через as
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы