Junior — Middle
127
Pouvez-vous énumérer et expliquer les méthodes magiques utilisées dans les gestionnaires de contexte asynchrones?
Réponse de l'IA
sobes.tech IA
В Python асинхронные контекстные менеджеры используют два магических метода:
__aenter__(self)— вызывается при входе в асинхронный контекст (async with). Должен возвращать awaitable объект, обычно сам менеджер или ресурс.__aexit__(self, exc_type, exc, tb)— вызывается при выходе из контекста, также возвращает awaitable. Позволяет обработать исключения внутри контекста.
Пример простого асинхронного контекстного менеджера:
class AsyncManager:
async def __aenter__(self):
print('Вход в контекст')
return self
async def __aexit__(self, exc_type, exc, tb):
print('Выход из контекста')
if exc:
print(f'Обработка исключения: {exc}')
import asyncio
async def main():
async with AsyncManager() as manager:
print('В теле контекста')
asyncio.run(main())
Таким образом, эти методы позволяют управлять ресурсами в асинхронном коде, обеспечивая корректное открытие и закрытие.