Зачем нужен контекстный менеджер в Python
Python
Senior
Без компании
Зачем нужен контекстный менеджер в Python
Ответы
Контекстные менеджеры (`with`) упрощают управление ресурсами (файлы, соединения и т.д.), гарантируя их корректное освобождение, даже если возникла ошибка. Они автоматически вызывают методы `__enter__` (при входе) и `__exit__` (при выходе).
Пример с файлом:
```
with open('file.txt', 'r') as f:
data = f.read()
# Файл автоматически закроется здесь, даже если было исключение
```
Эквивалент без `with`:
```
f = open('file.txt', 'r')
try:
data = f.read()
finally:
f.close()
```
Можно создавать свои контекстные менеджеры через классы (с `__enter__`/`__exit__`) или используя `contextlib.contextmanager`.