Что такое менеджеры контекста в Python

Python Senior Без компании
Что такое менеджеры контекста в Python
Ответы
Менеджеры контекста в Python — это объекты, которые определяют контекст выполнения блока кода с помощью методов `__enter__` и `__exit__`. Они гарантируют, что ресурсы будут правильно выделены и освобождены, даже если возникнет исключение. Самый распространённый пример — работа с файлами через `with`: ``` with open('file.txt', 'r') as f: data = f.read() # файл автоматически закрывается здесь ``` Эквивалентно: ``` f = open('file.txt', 'r') try: data = f.read() finally: f.close() ``` Можно создавать свои менеджеры контекста через классы или `contextlib`: ``` from contextlib import contextmanager @contextmanager def timer(): start = time.time() yield print(f"Time: {time.time() - start}") with timer(): # код для замера времени ``` Ключевые преимущества: безопасность ресурсов, чистота кода и обработка исключений в `__exit__`.