Встречается на собеседованиях • сегодня
Как создавал контекстный менеджер на проекте
В Python контекстные менеджеры обычно создаются с помощью класса, реализующего методы __enter__ и __exit__, или через contextlib.contextmanager.
Пример с классом:
python
class DatabaseConnection:
def __enter__(self):
self.conn = connect_to_db() # Инициализация подключения
return self.conn
text
def __exit__(self, exc_type, exc_val, exc_tb):
self.conn.close() # Автоматическое закрытие
if exc_type: # Обработка исключений
print(f"Error: {exc_val}")text
**Пример с `contextmanager`:**
```python
from contextlib import contextmanager
@contextmanager
def temp_file(filepath):
try:
file = open(filepath, 'w')
yield file # Возвращаем ресурс
finally:
file.close() # Гарантированное закрытиеКогда использовал:
- Для управления подключениями к БД (автоматическое закрытие).
- Временные файлы (удаление после использования).
- Таймеры (замер времени выполнения блока кода).
Плюсы:
- Упрощает управление ресурсами.
- Уменьшает вероятность утечек.
- Делает код чище (избегаем
try-finally).

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