Встречается на собеседованиях • сегодня

Можно ли сделать свой контекстный менеджер в Python

Да, можно создать свой контекстный менеджер в Python. Для этого есть два основных способа:

  1. Используя класс с методами __enter__ и __exit__:
python
class MyContextManager:
    def __enter__(self):
        print("Вход в контекст")
        return self
    
    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Выход из контекста")
        if exc_type:
            print(f"Произошло исключение: {exc_val}")
        return True  # Подавляем исключение

with MyContextManager() as cm:
print("Внутри контекста")

text

2. **Используя `contextlib.contextmanager`**:
```python
from contextlib import contextmanager

@contextmanager
def my_context_manager():
    print("Вход в контекст")
    try:
        yield "ресурс"
    finally:
        print("Выход из контекста")

with my_context_manager() as resource:
    print(f"Используем {resource}")

Контекстные менеджеры полезны для управления ресурсами (файлы, соединения), временными изменениями состояния или обработкой исключений.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы