Встречается на 1% собеседований по Python
Делал ли асинхронный контекстный менеджер на проекте
Да, делал. Асинхронные контекстные менеджеры (async with) полезны при работе с асинхронными ресурсами, например, соединениями с БД или HTTP-клиентами. Реализуются через методы __aenter__ и __aexit__.
Пример простого асинхронного менеджера для подключения к БД:
python
import asyncpg
class AsyncDBConnection:
def init(self, dsn):
self.dsn = dsn
self.conn = None
text
async def __aenter__(self):
self.conn = await asyncpg.connect(self.dsn)
return self.conn
async def __aexit__(self, exc_type, exc_val, exc_tb):
await self.conn.close()Использование
async def query_data():
async with AsyncDBConnection('postgres://user:pass@localhost/db') as conn:
return await conn.fetch('SELECT * FROM users')
text
Ключевые моменты:
- `__aenter__` должен быть async
- `__aexit__` тоже async, даже если просто закрывает соединение
- Обрабатывает исключения автоматически
- Полезен для управления асинхронными ресурсами
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы