Какие бывают контекстные менеджеры

Python Middle Без компании
Какие бывают контекстные менеджеры
Ответы
В Python контекстные менеджеры позволяют управлять ресурсами, автоматически выделяя и освобождая их. Основные виды: - **Встроенные** (`with` statement): ``` with open('file.txt', 'r') as f: content = f.read() ``` - **Классы с методами `__enter__` и `__exit__`**: ``` class MyContext: def __enter__(self): print("Entering") return self def __exit__(self, exc_type, exc_val, exc_tb): print("Exiting") with MyContext() as ctx: print("Inside context") ``` - **Функциональные через `contextlib`**: ``` from contextlib import contextmanager @contextmanager def my_context(): print("Entering") yield print("Exiting") with my_context(): print("Inside") ``` - **Асинхронные** (Python 3.7+): ``` async with aiohttp.ClientSession() as session: async with session.get(url) as resp: data = await resp.json() ``` Контекстные менеджеры гарантируют правильное освобождение ресурсов даже при возникновении исключений.