Сообщить об ошибке.

Декоратор @asynccontextmanager модуля contextlib в Python

Декоратор для создания асинхронных контекстных менеджеров

Синтаксис:

import contextlib

@contextlib.asynccontextmanager

Параметры:

  • нет

Возвращаемое значение:

Описание:

Функция asynccontextmanager() модуля contextlib является декоратором, который можно использовать для определения фабричной функции для асинхронного управления с помощью оператора асинхронного контекста async with без необходимости создавать класс или отдельные методы __aenter__() и __aexit__().

Функция contextlib.asynccontextmanager() аналогична функции contextlib.contextmanager(), но создает асинхронный менеджер контекста, который должен применяться к функции асинхронного генератора.

Примеры:

from contextlib import asynccontextmanager

@asynccontextmanager
async def get_connection():
    conn = await acquire_db_connection()
    try:
        yield conn
    finally:
        await release_db_connection(conn)

async def get_all_users():
    async with get_connection() as conn:
        return conn.query('SELECT ...')