Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: async, await, asyncio, coroutine, async def

Какие ключевые слова используются для асинхронного программирования в Python?

Вопрос проверяет знание ключевых слов и конструкций Python для работы с асинхронным кодом, что необходимо для написания эффективных неблокирующих приложений.

Короткий ответ

Основные ключевые слова для асинхронного программирования в Python — это async и await. Ключевое слово async используется для объявления асинхронной функции (корутины), а await — для ожидания результата другой асинхронной операции без блокировки потока. Также важна библиотека asyncio, которая предоставляет цикл событий для управления корутинами. Эти инструменты позволяют писать код, который эффективно работает с I/O-операциями, такими как сетевые запросы или чтение файлов.

Длинный ответ

Асинхронное программирование в Python построено вокруг концепции корутин — специальных функций, которые могут приостанавливать своё выполнение и возобновлять его позже. Это позволяет эффективно управлять множеством операций ввода-вывода (I/O), таких как запросы к базам данных или веб-API, без создания множества потоков или процессов.

Ключевые слова и конструкции

  • async: Используется для объявления асинхронной функции (корутины). Например, async def fetch_data():.
  • await: Применяется внутри асинхронной функции для ожидания результата другой корутины или асинхронной операции. При этом управление возвращается в цикл событий, что позволяет выполнять другие задачи.
  • async with и async for: Асинхронные контекстные менеджеры и итераторы, используемые для работы с асинхронными ресурсами.

Библиотека asyncio

Для запуска асинхронного кода необходима библиотека asyncio, которая предоставляет цикл событий (event loop). Она включает функции для создания задач, ожидания нескольких операций и управления параллельным выполнением.

Пример кода

import asyncio

# Объявляем асинхронную функцию (корутину)
async def say_hello():
    print("Hello")
    await asyncio.sleep(1)  # Неблокирующая задержка
    print("World")

# Запускаем корутину в цикле событий
async def main():
    # Создаём задачу
    task = asyncio.create_task(say_hello())
    await task  # Ожидаем завершения задачи

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

В этом примере async def определяет корутину, await asyncio.sleep(1) приостанавливает выполнение на секунду, позволяя циклу событий переключиться на другие задачи, а asyncio.run() запускает асинхронный код.

Применение

Асинхронный подход особенно полезен в веб-серверах (например, FastAPI, aiohttp), клиентах для баз данных, парсерах и любых приложениях, где много операций ввода-вывода. Он помогает увеличить производительность, обрабатывая множество соединений в одном потоке.

Итог: Используйте async/await и библиотеку asyncio для написания неблокирующего кода в Python, когда нужно эффективно работать с медленными I/O-операциями, не перегружая систему множеством потоков.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • Python

    Python

Ключевые слова

#async

#await

#asyncio

#coroutine

#async def

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.