Назад к вопросам
Middle
73
questionbank

Какова функция gather() в Python и в каких случаях ее следует использовать?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

asyncio.gather() объединяет в себе несколько асинхронных объектов (awaitable) в одну Future.

Функции gather() следует использовать:

  • Когда нужно параллельно выполнить несколько корутин или других асинхронных задач и дождаться завершения всех.
  • Для группировки результатов выполнения асинхронных операций.
  • Для обработки исключений, возникших в любой из объединенных задач.

Пример использования:

import asyncio

async def task_one(delay):
    // Имитация долгой операции
    await asyncio.sleep(delay)
    return f"Task one finished after {delay} seconds"

async def task_two(data):
    // Имитация обработки данных
    await asyncio.sleep(1)
    return f"Task two processed: {data}"

async def main():
    results = await asyncio.gather(
        task_one(2),
        task_two("some_data"),
        return_exceptions=True // Возвращает исключения вместо их выброса
    )
    print(results)

// Запуск основной корутины
// asyncio.run(main())