Встречается на собеседованиях • сегодня
Как создать асинхронный контекстный менеджер
В Python асинхронный контекстный менеджер создается с помощью магических методов __aenter__ и __aexit__. Класс с этими методами можно использовать в async with.
Пример:
python
import asyncio
class AsyncContextManager:
async def __aenter__(self):
print("Entering context")
await asyncio.sleep(1)
return self
async def __aexit__(self, exc_type, exc_val, exc_tb):
print("Exiting context")
await asyncio.sleep(1)
async def main():
async with AsyncContextManager() as cm:
print("Inside context")
asyncio.run(main())
text
Также можно использовать `contextlib.asynccontextmanager` для создания асинхронного генераторного контекстного менеджера:
```python
from contextlib import asynccontextmanager
@asynccontextmanager
async def async_context():
print("Enter")
await asyncio.sleep(1)
yield "resource"
print("Exit")
async def main():
async with async_context() as res:
print(f"Using {res}")
asyncio.run(main())
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы